Skip to content

Instantly share code, notes, and snippets.

@praveenweb
Created February 26, 2018 10:02
Show Gist options
  • Save praveenweb/9cabe480c1811b85337de988e43b8633 to your computer and use it in GitHub Desktop.
Save praveenweb/9cabe480c1811b85337de988e43b8633 to your computer and use it in GitHub Desktop.
# ---- Base python ----
FROM python:3.6 AS base
# Create app directory
WORKDIR /app
# ---- Dependencies ----
FROM base AS dependencies
COPY gunicorn_app/requirements.txt ./
# install app dependencies
RUN pip install -r requirements.txt
# ---- Copy Files/Build ----
FROM dependencies AS build
WORKDIR /app
COPY . /app
# Build / Compile if required
# --- Release with Alpine ----
FROM python:3.6-alpine3.7 AS release
# Create app directory
WORKDIR /app
COPY --from=dependencies /app/requirements.txt ./
COPY --from=dependencies /root/.cache /root/.cache
# Install app dependencies
RUN pip install -r requirements.txt
COPY --from=build /app/ ./
CMD ["gunicorn", "--config", "./gunicorn_app/conf/gunicorn_config.py", "gunicorn_app:app"]
@PaulisMatrix
Copy link

@praveenweb, I have one question. What's the use of dependencies layer since you are installing the packages in the release itself?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment