mirror of https://github.com/apache/superset.git
fix(docker): optimize docker build by better utilizing build cache (#23624)
This commit is contained in:
parent
04bd528bed
commit
536b1c4816
84
Dockerfile
84
Dockerfile
|
@ -58,52 +58,48 @@ ENV LANG=C.UTF-8 \
|
||||||
SUPERSET_PORT=8088
|
SUPERSET_PORT=8088
|
||||||
|
|
||||||
RUN mkdir -p ${PYTHONPATH} \
|
RUN mkdir -p ${PYTHONPATH} \
|
||||||
&& useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \
|
&& useradd --user-group -d ${SUPERSET_HOME} -m --no-log-init --shell /bin/bash superset \
|
||||||
&& apt-get update -y \
|
&& apt-get update -y \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
build-essential \
|
build-essential \
|
||||||
curl \
|
curl \
|
||||||
default-libmysqlclient-dev \
|
default-libmysqlclient-dev \
|
||||||
libsasl2-dev \
|
libsasl2-dev \
|
||||||
libsasl2-modules-gssapi-mit \
|
libsasl2-modules-gssapi-mit \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
libecpg-dev \
|
libecpg-dev \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
COPY ./requirements/*.txt /app/requirements/
|
|
||||||
COPY setup.py MANIFEST.in README.md /app/
|
|
||||||
|
|
||||||
# setup.py uses the version information in package.json
|
|
||||||
COPY superset-frontend/package.json /app/superset-frontend/
|
|
||||||
|
|
||||||
RUN cd /app \
|
|
||||||
&& mkdir -p superset/static \
|
|
||||||
&& touch superset/static/version_info.json \
|
|
||||||
&& pip install --no-cache -r requirements/local.txt
|
|
||||||
|
|
||||||
COPY --from=superset-node /app/superset/static/assets /app/superset/static/assets
|
|
||||||
|
|
||||||
## Lastly, let's install superset itself
|
|
||||||
COPY superset /app/superset
|
|
||||||
COPY setup.py MANIFEST.in README.md /app/
|
|
||||||
RUN cd /app \
|
|
||||||
&& chown -R superset:superset * \
|
|
||||||
&& pip install -e . \
|
|
||||||
&& flask fab babel-compile --target superset/translations
|
|
||||||
|
|
||||||
COPY ./docker/run-server.sh /usr/bin/
|
|
||||||
|
|
||||||
RUN chmod a+x /usr/bin/run-server.sh
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY --chown=superset:superset ./requirements/*.txt requirements/
|
||||||
|
COPY --chown=superset:superset setup.py MANIFEST.in README.md ./
|
||||||
|
|
||||||
|
# setup.py uses the version information in package.json
|
||||||
|
COPY --chown=superset:superset superset-frontend/package.json superset-frontend/
|
||||||
|
|
||||||
|
RUN mkdir -p superset/static \
|
||||||
|
&& touch superset/static/version_info.json \
|
||||||
|
&& pip install --no-cache-dir -r requirements/local.txt
|
||||||
|
|
||||||
|
COPY --chown=superset:superset --from=superset-node /app/superset/static/assets superset/static/assets
|
||||||
|
|
||||||
|
## Lastly, let's install superset itself
|
||||||
|
COPY --chown=superset:superset superset superset
|
||||||
|
RUN chown -R superset:superset ./* \
|
||||||
|
&& pip install --no-cache-dir -e . \
|
||||||
|
&& flask fab babel-compile --target superset/translations
|
||||||
|
|
||||||
|
COPY ./docker/run-server.sh /usr/bin/
|
||||||
|
RUN chmod a+x /usr/bin/run-server.sh
|
||||||
|
|
||||||
USER superset
|
USER superset
|
||||||
|
|
||||||
HEALTHCHECK CMD curl -f "http://localhost:$SUPERSET_PORT/health"
|
HEALTHCHECK CMD curl -f "http://localhost:$SUPERSET_PORT/health"
|
||||||
|
|
||||||
EXPOSE ${SUPERSET_PORT}
|
EXPOSE ${SUPERSET_PORT}
|
||||||
|
|
||||||
CMD /usr/bin/run-server.sh
|
CMD ["/usr/bin/run-server.sh"]
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# Dev image...
|
# Dev image...
|
||||||
|
@ -118,13 +114,13 @@ USER root
|
||||||
|
|
||||||
RUN apt-get update -y \
|
RUN apt-get update -y \
|
||||||
&& apt-get install -y --no-install-recommends \
|
&& apt-get install -y --no-install-recommends \
|
||||||
libnss3 \
|
libnss3 \
|
||||||
libdbus-glib-1-2 \
|
libdbus-glib-1-2 \
|
||||||
libgtk-3-0 \
|
libgtk-3-0 \
|
||||||
libx11-xcb1 \
|
libx11-xcb1 \
|
||||||
libasound2 \
|
libasound2 \
|
||||||
libxtst6 \
|
libxtst6 \
|
||||||
wget
|
wget
|
||||||
|
|
||||||
# Install GeckoDriver WebDriver
|
# Install GeckoDriver WebDriver
|
||||||
RUN wget https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz -O /tmp/geckodriver.tar.gz && \
|
RUN wget https://github.com/mozilla/geckodriver/releases/download/${GECKODRIVER_VERSION}/geckodriver-${GECKODRIVER_VERSION}-linux64.tar.gz -O /tmp/geckodriver.tar.gz && \
|
||||||
|
|
Loading…
Reference in New Issue