Zuletzt aktiv 6 months ago

Änderung 13efc266ea38a8ba50ddb1887f65eeeecb5527ac

deploy_portainer.sh Originalformat
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 - portainer.hidden=true
21 restart: always
22 volumes:
23 - /srv/docker/portainer/data:/data
24 - /var/run/docker.sock:/var/run/docker.sock
25 - /etc/localtime:/etc/localtime:ro
26 - /etc/timezone:/etc/timezone:ro
27
28networks:
29 traefik_default:
30 external: true
31EOF
32ln -s container.conf/docker-compose.yml ${DOCKER_BASE}/portainer/
33
34cat > ${DOCKER_BASE}/portainer/container.conf/production.yml <<EOF
35version: '3.7'
36
37services:
38
39 traefik:
40 labels:
41 - traefik.frontend.rule=Host:host.test.org;PathPrefixStrip:/ui
42 - com.centurylinklabs.watchtower.enable=true
43EOF
44
45cat > ${DOCKER_BASE}/portainer/container.conf/portainer.service <<EOF
46[Unit]
47Description=Portainer Service
48After=network.target docker.service traefik.service
49Requires=docker.service
50
51[Service]
52Type=oneshot
53RemainAfterExit=yes
54
55Environment="WORK_DIR=/srv/docker/portainer/"
56WorkingDirectory=/srv/docker/portainer/
57ExecStartPre=-/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" down
58ExecStart=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" up -d
59ExecStop=/usr/local/bin/docker-compose -f "\${WORK_DIR}/docker-compose.yml" -f "\${WORK_DIR}/container.conf/production.yml" down
60
61[Install]
62WantedBy=docker.service
63EOF
64ln -s ${DOCKER_BASE}/portainer/container.conf/portainer.service /etc/systemd/system/
65
66systemctl daemon-reload && systemctl enable portainer && systemctl start portainer