Udpate docker-compose file. refactor services and network

This commit is contained in:
xbgmsharp
2023-07-10 17:01:32 +02:00
parent 931544663e
commit 5144050875
3 changed files with 134 additions and 89 deletions

View File

@@ -1 +0,0 @@
docker-compose.yml

112
docker-compose.dev.yml Normal file
View File

@@ -0,0 +1,112 @@
version: "3.9"
services:
dev:
container_name: dev
image: mcr.microsoft.com/devcontainers/base:ubuntu
volumes:
- ../:/workspaces:cached
- /var/run/docker.sock:/var/run/docker.sock
#network_mode: service:db
links:
- "api:postgrest"
- "db:database"
#- "web_dev:web_dev"
command: sleep infinity
pgadmin:
image: dpage/pgadmin4:latest
container_name: pgadmin
restart: unless-stopped
volumes:
- data:/var/lib/pgadmin
- ./pgadmin_servers.json:/servers.json:ro
links:
- "db:database"
ports:
- 5050:5050
environment:
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
- PGADMIN_LISTEN_ADDRESS=0.0.0.0
- PGADMIN_LISTEN_PORT=5050
- PGADMIN_SERVER_JSON_FILE=/servers.json
- PGADMIN_DISABLE_POSTFIX=true
depends_on:
- db
logging:
options:
max-size: 10m
swagger:
image: swaggerapi/swagger-ui
container_name: swagger
restart: unless-stopped
links:
- "api:postgrest"
ports:
- "8181:8080"
expose:
- "8080"
environment:
- API_URL=http://api:3000/
depends_on:
- db
- api
logging:
options:
max-size: 10m
tests:
image: xbgmsharp/postgsail-tests
build:
context: ./tests
dockerfile: Dockerfile
container_name: tests
restart: unless-stopped
volumes:
- ./tests:/mnt
working_dir: /mnt
command: 'bash tests.sh'
links:
- "api:postgrest"
env_file: .env
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- PGPASSWORD=${POSTGRES_PASSWORD}
- PGSAIL_API_URL=${PGSAIL_API_URL}
depends_on:
- db
- api
logging:
options:
max-size: 10m
web_dev:
image: xbgmsharp/postgsail-vuestic:dev
build:
context: https://github.com/xbgmsharp/vuestic-postgsail.git#live
dockerfile: Dockerfile_dev
container_name: web_dev
restart: unless-stopped
volumes:
- ./frontend:/app
links:
- "api:postgrest"
ports:
- 8080:8080
environment:
- VITE_PGSAIL_URL=${PGSAIL_API_URL}
- VITE_APP_INCLUDE_DEMOS=false
- VITE_APP_BUILD_VERSION=true
- VITE_APP_TITLE=${VITE_APP_TITLE}
depends_on:
- db
- api
logging:
options:
max-size: 10m
volumes:
data: {}

View File

@@ -1,10 +1,12 @@
version: '3.9' version: "3.9"
services: services:
db: db:
image: xbgmsharp/timescaledb-postgis image: xbgmsharp/timescaledb-postgis
container_name: db container_name: db
hostname: db
restart: unless-stopped restart: unless-stopped
#env_file: .env env_file: .env
environment: environment:
- TIMESCALEDB_TELEMETRY=off - TIMESCALEDB_TELEMETRY=off
- PGDATA=/var/lib/postgresql/data/pgdata - PGDATA=/var/lib/postgresql/data/pgdata
@@ -13,15 +15,11 @@ services:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB} - POSTGRES_DB=${POSTGRES_DB}
- PGSAIL_AUTHENTICATOR_PASSWORD=${PGSAIL_AUTHENTICATOR_PASSWORD} - PGSAIL_AUTHENTICATOR_PASSWORD=${PGSAIL_AUTHENTICATOR_PASSWORD}
#network_mode: "host"
ports: ports:
- "5432:5432" - "5432:5432"
volumes: volumes:
- ./db-data:/var/lib/postgresql/data - ./db-data:/var/lib/postgresql/data
- ./initdb:/docker-entrypoint-initdb.d - ./initdb:/docker-entrypoint-initdb.d
networks:
iot:
ipv4_address: 172.30.0.2
logging: logging:
options: options:
max-size: 10m max-size: 10m
@@ -35,10 +33,13 @@ services:
api: api:
image: postgrest/postgrest image: postgrest/postgrest
container_name: api container_name: api
hostname: api
restart: unless-stopped restart: unless-stopped
links:
- "db:database"
ports: ports:
- "3000:3000" - "3000:3000"
#env_file: .env env_file: .env
environment: environment:
PGRST_DB_SCHEMA: api PGRST_DB_SCHEMA: api
PGRST_DB_ANON_ROLE: api_anonymous PGRST_DB_ANON_ROLE: api_anonymous
@@ -46,9 +47,6 @@ services:
PGRST_DB_PRE_REQUEST: public.check_jwt PGRST_DB_PRE_REQUEST: public.check_jwt
PGRST_DB_URI: ${PGRST_DB_URI} PGRST_DB_URI: ${PGRST_DB_URI}
PGRST_JWT_SECRET: ${PGRST_JWT_SECRET} PGRST_JWT_SECRET: ${PGRST_JWT_SECRET}
networks:
iot:
ipv4_address: 172.30.0.3
depends_on: depends_on:
- db - db
logging: logging:
@@ -61,70 +59,18 @@ services:
# retries: 5 # retries: 5
# start_period: 100s # start_period: 100s
web:
image: xbgmsharp/vuestic-postgsail:dev
build:
context: https://github.com/xbgmsharp/vuestic-postgsail.git#live
dockerfile: Dockerfile_dev
container_name: web_dev
restart: unless-stopped
volumes:
- ./frontend:/app
networks:
iot:
ipv4_address: 172.30.0.4
ports:
- 8080:8080
environment:
- VITE_PGSAIL_URL=${PGSAIL_API_URL}
- VITE_APP_INCLUDE_DEMOS=false
- VITE_APP_BUILD_VERSION=true
- VITE_APP_TITLE=${VITE_APP_TITLE}
depends_on:
- db
- api
logging:
options:
max-size: 10m
pgadmin:
image: dpage/pgadmin4:latest
container_name: pgadmin
restart: unless-stopped
volumes:
- data:/var/lib/pgadmin
- ./pgadmin_servers.json:/servers.json:ro
ports:
- 5050:5050
environment:
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
- PGADMIN_LISTEN_ADDRESS=0.0.0.0
- PGADMIN_LISTEN_PORT=5050
- PGADMIN_SERVER_JSON_FILE=/servers.json
- PGADMIN_DISABLE_POSTFIX=true
networks:
iot:
ipv4_address: 172.30.0.5
depends_on:
- db
logging:
options:
max-size: 10m
app: app:
image: grafana/grafana:latest image: grafana/grafana:latest
container_name: app container_name: app
restart: unless-stopped restart: unless-stopped
links:
- "db:database"
volumes: volumes:
- data:/var/lib/grafana - data:/var/lib/grafana
- data:/var/log/grafana - data:/var/log/grafana
- ./grafana:/etc/grafana - ./grafana:/etc/grafana
ports: ports:
- "3001:3000" - "3001:3000"
networks:
iot:
ipv4_address: 172.30.0.6
environment: environment:
- GF_INSTALL_PLUGINS=pr0ps-trackmap-panel,fatcloud-windrose-panel - GF_INSTALL_PLUGINS=pr0ps-trackmap-panel,fatcloud-windrose-panel
- GF_USERS_ALLOW_SIGN_UP=false - GF_USERS_ALLOW_SIGN_UP=false
@@ -145,13 +91,10 @@ services:
image: xbgmsharp/postgsail-telegram-bot image: xbgmsharp/postgsail-telegram-bot
container_name: telegram container_name: telegram
restart: unless-stopped restart: unless-stopped
volumes: links:
- /etc/resolv.conf:/etc/resolv.conf:ro - "api:postgrest"
ports: ports:
- "3005:8080" - "3005:8080"
networks:
iot:
ipv4_address: 172.30.0.7
environment: environment:
- BOT_TOKEN=${PGSAIL_TELEGRAM_BOT_TOKEN} - BOT_TOKEN=${PGSAIL_TELEGRAM_BOT_TOKEN}
- PGSAIL_URL=${PGSAIL_API_URL} - PGSAIL_URL=${PGSAIL_API_URL}
@@ -162,19 +105,19 @@ services:
options: options:
max-size: 10m max-size: 10m
swagger: web:
image: swaggerapi/swagger-ui image: xbgmsharp/postgsail-vuestic
container_name: swagger container_name: web
restart: unless-stopped restart: unless-stopped
links:
- "api:postgrest"
ports: ports:
- "8181:8080" - 8080:8080
expose:
- "8080"
environment: environment:
API_URL: http://172.30.0.3:3000/ - VITE_PGSAIL_URL=${PGSAIL_API_URL}
networks: - VITE_APP_INCLUDE_DEMOS=false
iot: - VITE_APP_BUILD_VERSION=true
ipv4_address: 172.30.0.8 - VITE_APP_TITLE=${VITE_APP_TITLE}
depends_on: depends_on:
- db - db
- api - api
@@ -184,12 +127,3 @@ services:
volumes: volumes:
data: {} data: {}
networks:
iot:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.30.0.0/24
gateway: 172.30.0.1