-
Notifications
You must be signed in to change notification settings - Fork 113
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add dockerfile for prod deploy (#83)
For now, we might combine later with the dockerfile inside of backend * A bit of code duplication * Change entry point to prod * Expose on port 8080 --------- Co-authored-by: Brace Sproul <braceasproul@gmail.com>
- Loading branch information
1 parent
e15418f
commit 6bd9985
Showing
2 changed files
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# All directory paths for COPY commands are relative to the build context | ||
|
||
# Ensure this python version stays in sync with CI | ||
FROM python:3.11-slim as base | ||
WORKDIR /backend | ||
|
||
# set environment variables | ||
ENV PYTHONDONTWRITEBYTECODE 1 | ||
ENV PYTHONUNBUFFERED 1 | ||
ENV POETRY_HOME="/opt/poetry" | ||
ENV MYPYPATH="/app/src/stubs" | ||
|
||
# Use bash as the shell for the build | ||
# https://github.com/docker/for-linux/issues/408#issuecomment-414748815 | ||
SHELL ["/bin/bash", "-o", "pipefail", "-c"] | ||
|
||
RUN set -eux && \ | ||
apt-get update && \ | ||
apt-get install -y \ | ||
build-essential \ | ||
curl \ | ||
libpq-dev \ | ||
python3-dev \ | ||
libmagic1 | ||
|
||
# https://python-poetry.org/docs | ||
RUN pip install poetry | ||
|
||
# install deps before copying project files so the cache is only invalidated | ||
# when the deps change | ||
COPY ./backend/pyproject.toml ./backend/poetry.lock ./ | ||
RUN poetry config virtualenvs.create false | ||
RUN poetry install --no-root --only main | ||
|
||
COPY ./backend . | ||
|
||
EXPOSE 8080 | ||
|
||
### | ||
# development image | ||
### | ||
FROM base as development | ||
|
||
ENTRYPOINT ["bash", "./scripts/prod_entry_point.sh"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# -e: fail on any nonzero exit status | ||
# -u: fail if any referenced variables are not set | ||
# -x: print commands before running them | ||
# -o pipefail: fail if a command in a pipe has a nonzero exit code | ||
set -euxo pipefail | ||
|
||
# For now just create the db if it doesn't exist | ||
# python -m scripts.run_migrations create | ||
|
||
uvicorn server.main:app --host 0.0.0.0 --port 8080 --reload |