Add Docker #6
6 changed files with 64 additions and 5 deletions
3
.env.example
Normal file
3
.env.example
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
PORT=8002
|
||||||
|
UWSGI_PROCESSES=4
|
||||||
|
UWSGI_THREADS=4
|
12
.gitignore
vendored
12
.gitignore
vendored
|
@ -1,7 +1,9 @@
|
||||||
venv/
|
.env
|
||||||
*.pyc
|
|
||||||
__pycache__/
|
|
||||||
.vscode
|
.vscode
|
||||||
privacy.txt
|
__pycache__/
|
||||||
|
dist/
|
||||||
|
docker-compose.yml
|
||||||
privacy.md
|
privacy.md
|
||||||
/dist/
|
privacy.txt
|
||||||
|
*.pyc
|
||||||
|
venv/
|
||||||
|
|
17
Dockerfile
Normal file
17
Dockerfile
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
FROM alpine:3.20
|
||||||
|
|
||||||
|
ENV APP_ENV=/opt/venv
|
||||||
|
ENV PATH="${APP_ENV}/bin:$PATH"
|
||||||
|
|
||||||
|
RUN apk add --no-cache py3-pip uwsgi-python3 && \
|
||||||
|
python3 -m venv $APP_ENV && \
|
||||||
|
$APP_ENV/bin/pip install --no-cache-dir pip structables && \
|
||||||
|
adduser -S -D -H structables
|
||||||
|
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
EXPOSE 8002
|
||||||
|
|
||||||
|
USER structables
|
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
@ -16,6 +16,7 @@ An open source alternative front-end to Instructables. This is a fork of <a href
|
||||||
| URL | Provided by | Country | Comments |
|
| URL | Provided by | Country | Comments |
|
||||||
| -------------------------------------------------------------------------- | ----------------------------------------- | ------- | -------- |
|
| -------------------------------------------------------------------------- | ----------------------------------------- | ------- | -------- |
|
||||||
| [https://structables.private.coffee/](https://structables.private.coffee/) | [Private.coffee](https://private.coffee/) | Austria | |
|
| [https://structables.private.coffee/](https://structables.private.coffee/) | [Private.coffee](https://private.coffee/) | Austria | |
|
||||||
|
| [https://structables.bloat.cat/](https://structables.bloat.cat/) | [Bloat.cat](https://bloat.cat) | Romania | |
|
||||||
|
|
||||||
To add your own instance to this list, please open a pull request or issue.
|
To add your own instance to this list, please open a pull request or issue.
|
||||||
|
|
||||||
|
|
18
docker-compose-example.yml
Normal file
18
docker-compose-example.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
services:
|
||||||
|
structables:
|
||||||
|
container_name: structables
|
||||||
|
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 structables.main: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