From d8c0107489f18933767aa4cbb94ca247e379aa07 Mon Sep 17 00:00:00 2001 From: Zack <33050391+speed2exe@users.noreply.github.com> Date: Thu, 19 Oct 2023 10:36:26 +0800 Subject: [PATCH] feat: Portainer (#123) * feat: add portainer to docker compose for monitoring * feat: add portainer docker compose dev * feat: add portainer init password --- dev.env | 3 +++ docker-compose-dev.yml | 14 +++++++++++++- docker-compose.yml | 27 ++++++++++++++++++++++++++- docker/portainer/setup.sh | 5 +++++ nginx/nginx.conf | 5 +++++ 5 files changed, 52 insertions(+), 2 deletions(-) create mode 100755 docker/portainer/setup.sh diff --git a/dev.env b/dev.env index 5f5e23f3..27b333bd 100644 --- a/dev.env +++ b/dev.env @@ -48,3 +48,6 @@ RUST_LOG=info # PgAdmin PGADMIN_DEFAULT_EMAIL=admin@example.com PGADMIN_DEFAULT_PASSWORD=password + +# Portainer (username: admin) +PORTAINER_PASSWORD=password1234 diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml index ee96da90..1de53ef4 100644 --- a/docker-compose-dev.yml +++ b/docker-compose-dev.yml @@ -1,6 +1,15 @@ version: '3' services: + portainer: + restart: on-failure + image: portainer/portainer-ce:latest + ports: + - 9442:9000 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + minio: + restart: on-failure image: minio/minio ports: - 9000:9000 @@ -10,6 +19,7 @@ services: command: server /data --console-address ":9001" postgres: + restart: on-failure build: context: . dockerfile: docker/postgres.Dockerfile @@ -24,6 +34,7 @@ services: - ./migrations/before:/docker-entrypoint-initdb.d pgadmin: + restart: on-failure image: dpage/pgadmin4 depends_on: - postgres @@ -36,15 +47,16 @@ services: - ./docker/pgadmin/servers.json:/pgadmin4/servers.json redis: + restart: on-failure image: redis ports: - 6380:6379 gotrue: + restart: on-failure build: context: . dockerfile: docker/gotrue.Dockerfile - restart: on-failure depends_on: - postgres environment: diff --git a/docker-compose.yml b/docker-compose.yml index e40bd806..7ab7f430 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,26 @@ version: '3' services: + portainer: + restart: on-failure + image: portainer/portainer-ce:latest + ports: + - 9442:9000 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + portainer_init: + depends_on: + - portainer + image: alpine/curl + restart: on-failure + environment: + - PORTAINER_PASSWORD=${PORTAINER_PASSWORD} + volumes: + - ./docker/portainer/setup.sh:/setup.sh + command: ./setup.sh + nginx: + restart: on-failure image: nginx ports: - 80:80 @@ -10,12 +30,14 @@ services: - appflowy_cloud - gotrue - admin_frontend + - portainer volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf - ./nginx/ssl/certificate.crt:/etc/nginx/ssl/certificate.crt - ./nginx/ssl/private_key.key:/etc/nginx/ssl/private_key.key minio: + restart: on-failure image: minio/minio ports: - 9000:9000 @@ -25,6 +47,7 @@ services: command: server /data --console-address ":9001" postgres: + restart: on-failure build: context: . dockerfile: docker/postgres.Dockerfile @@ -39,6 +62,7 @@ services: - ./migrations/before:/docker-entrypoint-initdb.d pgadmin: + restart: on-failure image: dpage/pgadmin4 depends_on: - postgres @@ -51,15 +75,16 @@ services: - ./docker/pgadmin/servers.json:/pgadmin4/servers.json redis: + restart: on-failure image: redis ports: - 6380:6379 gotrue: + restart: on-failure build: context: . dockerfile: docker/gotrue.Dockerfile - restart: on-failure depends_on: - postgres environment: diff --git a/docker/portainer/setup.sh b/docker/portainer/setup.sh new file mode 100755 index 00000000..220090c0 --- /dev/null +++ b/docker/portainer/setup.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env sh +curl -i -X POST \ + -H "Content-Type: application/json" \ + -d '{"Username": "admin", "Password": "'"$PORTAINER_PASSWORD"'"}' \ + http://portainer:9000/api/users/admin/init diff --git a/nginx/nginx.conf b/nginx/nginx.conf index 45cc59e5..b0cea453 100644 --- a/nginx/nginx.conf +++ b/nginx/nginx.conf @@ -76,6 +76,11 @@ http { proxy_redirect off; } + # Portainer + location /portainer/ { + proxy_pass http://portainer:9000/; + } + # Admin Frontend location / { proxy_set_header X-Scheme $scheme;