Ultima attività 6 months ago

Revisione 93e4dfdc0c7b1bd9b21a738b5c1586d54f99e12a

deploy_portainer.sh Raw
1#!/bin/bash
2DOCKER_BASE=/srv/docker
3
4mkdir -p ${DOCKER_BASE}/portainer/container.conf
5
6cat > ${DOCKER_BASE}/portainer/container.conf/docker-compose.yml <<EOF
7version: '3.7'
8services:
9 portainer:
10 image: portainer/portainer
11 networks:
12 - default
13 - traefik_default
14 labels:
15 - traefik.enable=true
16 - traefik.backend=portainer
17 - traefik.docker.network=traefik_default
18 - traefik.port=9000
19 - traefik.default.protocol=http
20 restart: always
21 volumes:
22 - /srv/docker/portainer/data:/data
23 - /var/run/docker.sock:/var/run/docker.sock
24 - /etc/localtime:/etc/localtime:ro
25 - /etc/timezone:/etc/timezone:ro
26
27networks:
28 traefik_default:
29 external: true
30EOF
31ln -s container.conf/docker-compose.yml ${DOCKER_BASE}/portainer/
32
33cat > ${DOCKER_BASE}/portainer/container.conf/production.yml <<EOF
34version: '3.7'
35
36services:
37
38 portainer:
39 labels:
40 # https://github.com/containous/traefik/issues/563#issuecomment-421360934
41 - "traefik.frontend.redirect.regex=^(.*)/ui\$\$"
42 - "traefik.frontend.redirect.replacement=\$\$1/ui/"
43 - "traefik.frontend.rule=Host:host.test.org;PathPrefix:/ui;ReplacePathRegex: ^/ui/(.*) /\$\$1"
44 - com.centurylinklabs.watchtower.enable=true
45EOF
46
47cat > ${DOCKER_BASE}/portainer/container.conf/portainer.service <<EOF
48[Unit]
49Description=Portainer Service
50After=network.target docker.service traefik.service
51Requires=docker.service
52
53[Service]
54Type=oneshot
55RemainAfterExit=yes
56
57Environment="WORK_DIR=/srv/docker/portainer/"
58WorkingDirectory=/srv/docker/portainer/
59ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" down
60ExecStart=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" up -d
61ExecStop=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" down
62
63[Install]
64WantedBy=docker.service
65EOF
66ln -s ${DOCKER_BASE}/portainer/container.conf/portainer.service /etc/systemd/system/
67
68systemctl daemon-reload && systemctl enable portainer && systemctl start portainer
69