Skip to content

Commit

Permalink
feat(docker): execute db migration on docker compose
Browse files Browse the repository at this point in the history
  • Loading branch information
sushichan044 committed May 13, 2024
1 parent 97d8ddf commit 3c77c58
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
10 changes: 10 additions & 0 deletions compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,16 @@ services:
- action: rebuild
path: ./api
target: /app/api
migrate:
depends_on:
- db
build:
args:
- ENVIRONMENT=dev
context: ./migrate
dockerfile: Dockerfile
env_file:
- .env


volumes:
Expand Down
34 changes: 34 additions & 0 deletions migrate/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
ARG PYTHON_VERSION_CODE=3.10
ARG ENVIRONMENT="dev"
# ENVIRONMENT: dev or prod, refer to project.optional-dependencies in pyproject.toml

FROM python:${PYTHON_VERSION_CODE}-bookworm as builder
ARG PYTHON_VERSION_CODE
ARG ENVIRONMENT

WORKDIR /app
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1

COPY pyproject.toml README.md ./
COPY birdxplorer_migration/__init__.py ./birdxplorer_migration/
RUN pip install --no-cache-dir -e ".[${ENVIRONMENT}]"

COPY --from=ghcr.io/ufoscout/docker-compose-wait:latest /wait /wait

FROM python:${PYTHON_VERSION_CODE}-slim-bookworm as runner
ARG PYTHON_VERSION_CODE

WORKDIR /app

RUN groupadd -r app && useradd -r -g app app
RUN chown -R app:app /app
USER app


COPY --from=builder /wait /wait
COPY --from=builder /usr/local/lib/python${PYTHON_VERSION_CODE}/site-packages /usr/local/lib/python${PYTHON_VERSION_CODE}/site-packages
COPY --chown=app:app . ./

ENV WAIT_COMMAND="python birdxplorer_migration/scripts/migrations/migrate_all.py birdxplorer_migration/data/appv1/"
ENTRYPOINT ["/wait"]

0 comments on commit 3c77c58

Please sign in to comment.