52 lines
1.4 KiB
Docker
52 lines
1.4 KiB
Docker
# DOMAIN=example.com docker stack deploy -c annif.yml annif
|
|
# git clone https://github.com/NatLibFi/Annif .
|
|
# cp projects.cfg.dist projects.cfg
|
|
# chown -R 1000:1000 annif
|
|
|
|
services:
|
|
nginx:
|
|
image: nginx:latest
|
|
command: |
|
|
bash -c 'bash -s <<EOF
|
|
cat > /etc/nginx/conf.d/default.conf <<EON
|
|
server {
|
|
listen 80;
|
|
server_name localhost;
|
|
location / {
|
|
proxy_pass http://app:8000;
|
|
}
|
|
}
|
|
EON
|
|
nginx -g "daemon off;";
|
|
EOF'
|
|
deploy:
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.annif-${NUMBER:-1}.rule=Host(`${DOMAIN:-annif.localhost}`)
|
|
- traefik.http.routers.annif-${NUMBER:-1}.entrypoints=${SCHEME:-https}
|
|
- traefik.http.routers.annif-${NUMBER:-1}.service=annif-${NUMBER:-1}
|
|
- traefik.http.routers.annif-${NUMBER:-1}.tls.certresolver=letsencrypt
|
|
- traefik.http.services.annif-${NUMBER:-1}.loadbalancer.server.port=80
|
|
networks:
|
|
- internal
|
|
- traefik
|
|
|
|
app:
|
|
image: quay.io/natlibfi/annif:${VERSION:-latest}
|
|
user: ${UID:-1000}:${GID:-1000}
|
|
volumes:
|
|
- ${VOLUME_PATH}annif:/annif-projects
|
|
command: ["gunicorn", "annif:create_app()", "--bind", "0.0.0.0:8000", "--timeout", "600"]
|
|
networks:
|
|
- internal
|
|
|
|
volumes:
|
|
annif:
|
|
|
|
networks:
|
|
internal:
|
|
driver: overlay
|
|
attachable: true
|
|
traefik:
|
|
external: true
|
|
name: traefik-net
|