69 lines
1.6 KiB
Docker
69 lines
1.6 KiB
Docker
FROM node:12.14.0-buster-slim as webpack
|
|
LABEL maintainer="Nick Janetakis <nick.janetakis@gmail.com>"
|
|
|
|
WORKDIR /app/assets
|
|
|
|
COPY assets/package.json assets/*yarn* ./
|
|
|
|
ENV BUILD_DEPS="build-essential" \
|
|
APP_DEPS=""
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y ${BUILD_DEPS} ${APP_DEPS} --no-install-recommends \
|
|
&& yarn install \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& rm -rf /usr/share/doc && rm -rf /usr/share/man \
|
|
&& apt-get purge -y --auto-remove ${BUILD_DEPS} \
|
|
&& apt-get clean
|
|
|
|
COPY assets .
|
|
|
|
ARG NODE_ENV="production"
|
|
ENV NODE_ENV="${NODE_ENV}"
|
|
|
|
RUN if [ "${NODE_ENV}" != "development" ]; then \
|
|
yarn run build; else mkdir -p /app/public; fi
|
|
|
|
CMD ["bash"]
|
|
|
|
#
|
|
|
|
FROM python:3.8.1-slim-buster as app
|
|
LABEL maintainer="Nick Janetakis <nick.janetakis@gmail.com>"
|
|
|
|
WORKDIR /app
|
|
|
|
COPY requirements.txt requirements.txt
|
|
|
|
ENV BUILD_DEPS="build-essential" \
|
|
APP_DEPS="curl libpq-dev"
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y ${BUILD_DEPS} ${APP_DEPS} --no-install-recommends \
|
|
&& pip install -r requirements.txt \
|
|
&& rm -rf /var/lib/apt/lists/* \
|
|
&& rm -rf /usr/share/doc && rm -rf /usr/share/man \
|
|
&& apt-get purge -y --auto-remove ${BUILD_DEPS} \
|
|
&& apt-get clean
|
|
|
|
ARG FLASK_ENV="production"
|
|
ENV FLASK_ENV="${FLASK_ENV}" \
|
|
FLASK_APP="snakeeyes.app" \
|
|
PYTHONUNBUFFERED="true"
|
|
|
|
COPY --from=webpack /app/public /public
|
|
|
|
COPY . .
|
|
|
|
RUN pip install --editable .
|
|
|
|
RUN if [ "${FLASK_ENV}" != "development" ]; then \
|
|
flask digest compile; fi
|
|
|
|
RUN chmod +x docker-entrypoint.sh
|
|
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|
|
|
|
EXPOSE 8000
|
|
|
|
CMD ["gunicorn", "-c", "python:config.gunicorn", "snakeeyes.app:create_app()"]
|