1
0
mirror of https://github.com/rhasspy/rhasspy.git synced 2022-02-12 01:59:45 +03:00

Fixes for Docker build

This commit is contained in:
Michael Hansen
2021-04-01 11:05:02 -04:00
parent 603bcb0505
commit 65e4b082bc
8 changed files with 38 additions and 31 deletions

View File

@@ -57,7 +57,7 @@ RUN apt-get install --no-install-recommends --yes \
# -----------------------------------------------------------------------------
# Build stage for armv6
FROM balenalib/raspberry-pi-debian-python:3.7-buster-build-20200604 as build-armv6
FROM balenalib/raspberry-pi-debian-python:3.7-buster-build as build-armv6
ENV LANG C.UTF-8
ENV DEBIAN_FRONTEND=noninteractive
@@ -86,12 +86,8 @@ ENV BUILD_DIR=/build
# Directory of prebuilt tools
ENV DOWNLOAD_DIR=${BUILD_DIR}/download
COPY download/shared/ ${DOWNLOAD_DIR}/
COPY download/${TARGETARCH}${TARGETVARIANT}/ ${DOWNLOAD_DIR}/
# IFDEF NOAVX
#! RUN mv ${DOWNLOAD_DIR}/noavx/* ${DOWNLOAD_DIR}/
# ENDIF
COPY download/shared/ ${DOWNLOAD_DIR}/shared/
COPY download/${TARGETARCH}${TARGETVARIANT}/ ${DOWNLOAD_DIR}/${TARGETARCH}${TARGETVARIANT}/
# Copy Rhasspy module requirements
COPY rhasspy-server-hermes/requirements.txt ${BUILD_DIR}/rhasspy-server-hermes/
@@ -149,9 +145,12 @@ COPY RHASSPY_DIRS ${BUILD_DIR}/
#! ENV PIP_TRUSTED_HOST=${PYPI_PROXY_HOST}
# ENDIF
RUN export PIP_INSTALL_ARGS="-f ${DOWNLOAD_DIR}" && \
RUN export PIP_INSTALL_ARGS="-f ${DOWNLOAD_DIR}/shared -f ${DOWNLOAD_DIR}/${TARGETARCH}${TARGETVARIANT}" && \
export PIP_PREINSTALL_PACKAGES='numpy==1.20.1 scipy==1.5.1' && \
export PIP_VERSION='pip==20.2.4' && \
export PIP_VERSION='pip<=20.2.4' && \
if [ "${TARGETARCH}${TARGETVARIANT}" = 'amd64' ]; then \
export PIP_PREINSTALL_PACKAGES="${PIP_PREINSTALL_PACKAGES} detect-simd~=0.2.0"; \
fi && \
if [ ! "${TARGETARCH}${TARGETVARIANT}" = 'armv6' ]; then \
export PIP_PREINSTALL_PACKAGES="${PIP_PREINSTALL_PACKAGES} scikit-learn==0.23.2"; \
fi && \
@@ -185,7 +184,8 @@ RUN apt-get update && \
espeak flite \
gstreamer1.0-tools gstreamer1.0-plugins-good \
libsndfile1 libgomp1 libatlas3-base libgfortran4 libopenblas-base \
libjbig0 liblcms2-2 libopenjp2-7 libtiff5 libwebp6 libwebpdemux2 libwebpmux3
libjbig0 liblcms2-2 libopenjp2-7 libtiff5 libwebp6 libwebpdemux2 libwebpmux3 \
libatomic1
# IFDEF PROXY
#! RUN rm -f /etc/apt/apt.conf.d/01proxy
@@ -200,7 +200,7 @@ FROM run-debian as run-arm64
# -----------------------------------------------------------------------------
# Run stage for armv6
FROM balenalib/raspberry-pi-debian-python:3.7-buster-run-20200604 as run-armv6
FROM balenalib/raspberry-pi-debian-python:3.7-buster-run as run-armv6
# IFDEF PROXY
#! RUN echo 'Acquire::http { Proxy "http://${APT_PROXY_HOST}:${APT_PROXY_PORT}"; };' >> /etc/apt/apt.conf.d/01proxy

View File

@@ -10,12 +10,10 @@ ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install --no-install-recommends --yes \
build-essential swig portaudio19-dev \
llvm-7-dev libatlas-base-dev libopenblas-dev gfortran \
libatlas-base-dev libopenblas-dev gfortran \
gfortran libopenblas-dev liblapack-dev cython \
curl ca-certificates
ENV LLVM_CONFIG=/usr/bin/llvm-config-7
ENV NUM_JOBS=8
ENV BUILD_DIR=/build
@@ -29,7 +27,7 @@ FROM base as base-armv7
FROM base as base-arm64
FROM balenalib/raspberry-pi-debian:buster-build-20200604 as base-armv6
FROM balenalib/raspberry-pi-debian:buster-build as base-armv6
ENV LANG C.UTF-8
@@ -93,12 +91,8 @@ ARG TARGETVARIANT
# Directory of prebuilt tools
ENV DOWNLOAD_DIR=${BUILD_DIR}/download
COPY download/shared/ ${DOWNLOAD_DIR}/
COPY download/${TARGETARCH}${TARGETVARIANT}/ ${DOWNLOAD_DIR}/
# IFDEF NOAVX
#! RUN mv download/noavx/* download/
# ENDIF
COPY download/shared/ ${DOWNLOAD_DIR}/shared/
COPY download/${TARGETARCH}${TARGETVARIANT}/ ${DOWNLOAD_DIR}/${TARGETARCH}${TARGETVARIANT}/
# Copy Rhasspy source
COPY rhasspy/ ${APP_DIR}/rhasspy/
@@ -151,9 +145,13 @@ COPY etc/shflags ${APP_DIR}/etc/
COPY etc/wav/ ${APP_DIR}/etc/wav/
COPY README.md LICENSE RHASSPY_DIRS ${APP_DIR}/
RUN export PIP_INSTALL_ARGS="-f ${DOWNLOAD_DIR}" && \
RUN export PIP_INSTALL_ARGS="-f ${DOWNLOAD_DIR}/shared -f ${DOWNLOAD_DIR}/${TARGETARCH}${TARGETVARIANT}" && \
export PIP_PRE_PREINSTALL_PACKAGES='cython' && \
export PIP_PREINSTALL_PACKAGES='numpy==1.20.1 scipy==1.5.1' && \
export PIP_VERSION='pip==20.2.4' && \
export PIP_VERSION='pip<=20.2.4' && \
if [ "${TARGETARCH}${TARGETVARIANT}" = 'amd64' ]; then \
export PIP_PREINSTALL_PACKAGES="${PIP_PREINSTALL_PACKAGES} detect-simd~=0.2.0"; \
fi && \
if [ ! "${TARGETARCH}${TARGETVARIANT}" = 'armv6' ]; then \
export PIP_PREINSTALL_PACKAGES="${PIP_PREINSTALL_PACKAGES} scikit-learn==0.23.2"; \
fi && \
@@ -188,4 +186,4 @@ RUN cd ${BUILD_DIR} && \
FROM scratch
COPY --from=rhasspy /build/*.deb /
COPY --from=rhasspy /build/*.deb /

View File

@@ -47,8 +47,8 @@ ARG TARGETVARIANT
# Directory of prebuilt tools
ENV DOWNLOAD_DIR=${BUILD_DIR}/download
COPY download/shared/ ${DOWNLOAD_DIR}/
COPY download/${TARGETARCH}${TARGETVARIANT}/ ${DOWNLOAD_DIR}/
COPY download/shared/ ${DOWNLOAD_DIR}/shared/
COPY download/${TARGETARCH}${TARGETVARIANT}/ ${DOWNLOAD_DIR}/${TARGETARCH}${TARGETVARIANT}/
# IFDEF NOAVX
#! RUN mv ${DOWNLOAD_DIR}/noavx/* ${DOWNLOAD_DIR}/
@@ -110,9 +110,12 @@ COPY RHASSPY_DIRS ${BUILD_DIR}/
#! ENV PIP_TRUSTED_HOST=${PYPI_PROXY_HOST}
# ENDIF
RUN export PIP_INSTALL_ARGS="-f ${DOWNLOAD_DIR}" && \
RUN export PIP_INSTALL_ARGS="-f ${DOWNLOAD_DIR}/shared -f ${DOWNLOAD_DIR}/${TARGETARCH}${TARGETVARIANT}" && \
export PIP_PREINSTALL_PACKAGES='numpy==1.20.1 scipy==1.5.1' && \
export PIP_VERSION='pip==20.2.4' && \
if [ "${TARGETARCH}${TARGETVARIANT}" = 'amd64' ]; then \
export PIP_PREINSTALL_PACKAGES="${PIP_PREINSTALL_PACKAGES} detect-simd~=0.2.0"; \
fi && \
if [ ! "${TARGETARCH}${TARGETVARIANT}" = 'armv6' ]; then \
export PIP_PREINSTALL_PACKAGES="${PIP_PREINSTALL_PACKAGES} scikit-learn==0.23.2"; \
fi && \
@@ -148,7 +151,7 @@ RUN apt-get update && \
gstreamer1.0-tools gstreamer1.0-plugins-good \
libsndfile1 libgomp1 libatlas3-base libgfortran4 libopenblas-base \
libjbig0 liblcms2-2 libopenjp2-7 libtiff5 libwebp6 libwebpdemux2 libwebpmux3 \
libnuma1
libatomic1
# IFDEF PROXY
#! RUN rm -f /etc/apt/apt.conf.d/01proxy

View File

@@ -147,6 +147,7 @@ ifeq ($(VIRTUALENV),yes)
"$(VENV_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) cython
endif # VIRTUALENV == yes
if [[ -n "$(PIP_PRE_PREINSTALL_PACKAGES)" ]]; then "$(INSTALL_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) $(PIP_PRE_PREINSTALL_PACKAGES); fi
if [[ -n "$(PIP_PREINSTALL_PACKAGES)" ]]; then "$(INSTALL_PYTHON)" -m pip install $(PIP_INSTALL_ARGS) $(PIP_PREINSTALL_PACKAGES); fi
.PHONY: install-opengrm install-phonetisaurus install-precise install-pocketsphinx install-kaldi install-julius install-snowboy install-deepspeech install-kenlm install-nanotts install-larynx

2
debian/control.in vendored
View File

@@ -2,7 +2,7 @@ Package: rhasspy
Version: @VERSION@
Section: utils
Priority: optional
Depends: jq,sox,libportaudio2,libatlas3-base,libstdc++6,libgfortran4,supervisor,libopenblas-dev,llvm-7-runtime
Depends: jq,sox,libportaudio2,libatlas3-base,libstdc++6,libgfortran4,supervisor,libopenblas-base,libgomp1,libatomic1
Recommends: alsa-utils,espeak,flite,mosquitto
Architecture: @DEBIAN_ARCH@
Maintainer: Michael Hansen

View File

@@ -102,6 +102,11 @@ enable_wavenet = is_yes("@ENABLE_WAVENET@")
if not enable_wavenet:
packages.pop("rhasspytts_wavenet_hermes")
# larynx
enable_larynx = is_yes("@ENABLE_LARYNX@")
if not enable_larynx:
packages.pop("rhasspytts_larynx_hermes")
# -----------------------------------------------------------------------------
# True if Rhasspy Python modules will be used directly from source instead of