Add Docker support #1
5 changed files with 61 additions and 4 deletions
3
.env.example
Normal file
3
.env.example
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
PORT=8002
|
||||||
|
UWSGI_PROCESSES=4
|
||||||
|
UWSGI_THREADS=4
|
10
.gitignore
vendored
10
.gitignore
vendored
|
@ -1,5 +1,7 @@
|
||||||
venv/
|
|
||||||
.venv/
|
|
||||||
__pycache__/
|
|
||||||
*.pyc
|
|
||||||
/dist/
|
/dist/
|
||||||
|
docker-compose.yml
|
||||||
|
.env
|
||||||
|
*.pyc
|
||||||
|
__pycache__/
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
|
|
19
Dockerfile
Normal file
19
Dockerfile
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
FROM alpine:3.20
|
||||||
|
|
||||||
|
ENV APP_ENV=/opt/venv
|
||||||
|
ENV PATH="${APP_ENV}/bin:$PATH"
|
||||||
|
|
||||||
|
WORKDIR $APP_ENV
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN apk add --no-cache py3-pip uwsgi-python3 && \
|
||||||
|
python3 -m venv $APP_ENV && \
|
||||||
|
pip install --no-cache-dir . && \
|
||||||
|
adduser -D -H small
|
||||||
|
|
||||||
|
EXPOSE 8002
|
||||||
|
|
||||||
|
USER small:small
|
||||||
|
|
||||||
|
ENTRYPOINT ["/opt/venv/entrypoint.sh"]
|
15
docker-compose-example.yml
Normal file
15
docker-compose-example.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
services:
|
||||||
|
small:
|
||||||
|
container_name: small
|
||||||
|
restart: unless-stopped
|
||||||
|
build: .
|
||||||
|
ports: [127.0.0.1:8002:8002]
|
||||||
|
env_file: .env
|
||||||
|
security_opt: [no-new-privileges:true]
|
||||||
|
cap_drop: [ALL]
|
||||||
|
read_only: true
|
||||||
|
deploy:
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpus: '0.5'
|
||||||
|
memory: 300M
|
18
entrypoint.sh
Executable file
18
entrypoint.sh
Executable file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/sh
|
||||||
|
args="--plugin python3 \
|
||||||
|
--http-socket 0.0.0.0:$PORT \
|
||||||
|
--master \
|
||||||
|
--module small.app:app \
|
||||||
|
-H /opt/venv"
|
||||||
|
|
||||||
|
if [ "$UWSGI_PROCESSES" ]
|
||||||
|
then
|
||||||
|
args="$args --processes $UWSGI_PROCESSES"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$UWSGI_THREADS" ]
|
||||||
|
then
|
||||||
|
args="$args --threads $UWSGI_THREADS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec /usr/sbin/uwsgi $args
|
Loading…
Reference in a new issue