Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
FROM python:3.11-alpine
EXPOSE 8080
ENV TZ="UTC"
RUN apk add curl tzdata && \
pip install -U pip

# Install dependencies:
COPY requirements.txt .
ADD . /shaman
RUN pip3 install -r requirements.txt
RUN pip3 install cherrypy
RUN pip3 install /shaman/.

# Run the application:
COPY config/ /shaman/config
COPY alembic.ini /shaman/alembic.ini
COPY container_start.sh /shaman/container_start.sh
WORKDIR /shaman
CMD sh container_start.sh
20 changes: 20 additions & 0 deletions container_start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env sh
set -ex
trap exit TERM
if [ -z "$ALEMBIC_CONFIG" ]; then
export ALEMBIC_CONFIG=/shaman/alembic.ini
fi
pecan populate ./config/dev.py
CURRENT=$(alembic current)
if [ -z "$CURRENT" ]; then
echo "No current revision; assuming no migration necessary"
alembic stamp head
else
echo "Current revision: $CURRENT - will attempt to migrate"
alembic upgrade head
fi
if [ "$GUNICORN" = "false" ]; then
pecan serve ./config/run.py
else
gunicorn_pecan ./config/run.py
fi