From 6ab3e63af291a558ebbdd9efbe6877c336129bbf Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Sun, 30 Mar 2025 03:05:47 +0200 Subject: [PATCH] refactor docker compose --- .run/Compose up.run.xml | 12 ------------ README.md | 16 ++++++++++++---- build.gradle.kts | 2 +- docker/docker-compose-dev.yaml | 7 ------- docker/docker-compose-prod.yaml | 3 +-- docker/docker-compose-test.yaml | 4 +++- docker/envs/docker-compose-dev.yaml | 14 -------------- docker/envs/docker-compose-prod.yaml | 14 -------------- docker/parts/docker-compose-app.yaml | 5 ++++- ...yaml => docker-compose-databases-expose.yaml} | 0 docker/parts/docker-compose-tools.yaml | 9 +++++++++ docker/parts/docker-compose-traefik.yaml | 12 +++++++----- 12 files changed, 37 insertions(+), 61 deletions(-) delete mode 100644 .run/Compose up.run.xml delete mode 100644 docker/docker-compose-dev.yaml delete mode 100644 docker/envs/docker-compose-dev.yaml delete mode 100644 docker/envs/docker-compose-prod.yaml rename docker/parts/{docker-compose-port.yaml => docker-compose-databases-expose.yaml} (100%) diff --git a/.run/Compose up.run.xml b/.run/Compose up.run.xml deleted file mode 100644 index 69723f1..0000000 --- a/.run/Compose up.run.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 8bd9016..8648224 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,19 @@ To run the stack: docker compose -f docker\docker-compose.yaml -p event-demo up -d ``` +Api url: +- [Backend API](http://api.traefik.me/) +- [Frontend web site](http://app.traefik.me/) (WIP) + +Exposed url on test env: +- [PostgreSql](http://postgresql.traefik.me/) +- [Redis](http://redis.traefik.me/) + Admin service URL: - - [Træfik](http://pgadmin.traefik.me/) - - [Redis](http://pgadmin.traefik.me/) - - [pgAdmin](http://pgadmin.traefik.me/) - - [API](http://api.traefik.me/) +- [Træfik dashboard](http://traefik.traefik.me/) +- [Redis insight](http://insight.redis.traefik.me/) +- [pgAdmin](http://pgadmin.postgresql.traefik.me/) + What's in this demo ------------------- diff --git a/build.gradle.kts b/build.gradle.kts index 4bf8700..f4b3284 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -57,7 +57,7 @@ tasks.test { tasks.named("run") { dependsOn("composeUp") - dockerCompose.useComposeFiles.set(listOf("docker/docker-compose-dev.yaml")) + dockerCompose.useComposeFiles.set(listOf("docker/docker-compose-test.yaml")) dockerCompose.setProjectName("event-demo-dev") } diff --git a/docker/docker-compose-dev.yaml b/docker/docker-compose-dev.yaml deleted file mode 100644 index 695a652..0000000 --- a/docker/docker-compose-dev.yaml +++ /dev/null @@ -1,7 +0,0 @@ -name: event-demo-dev -include: - - path: - - parts/docker-compose-databases.yaml - - parts/docker-compose-tools.yaml - - parts/docker-compose-traefik.yaml - - envs/docker-compose-dev.yaml diff --git a/docker/docker-compose-prod.yaml b/docker/docker-compose-prod.yaml index 8a703c7..f5a1142 100644 --- a/docker/docker-compose-prod.yaml +++ b/docker/docker-compose-prod.yaml @@ -2,7 +2,6 @@ name: event-demo-prod include: - path: - parts/docker-compose-databases.yaml - - parts/docker-compose-tools.yaml - parts/docker-compose-app.yaml + - parts/docker-compose-tools.yaml - parts/docker-compose-traefik.yaml - - envs/docker-compose-prod.yaml diff --git a/docker/docker-compose-test.yaml b/docker/docker-compose-test.yaml index a73510f..e134f20 100644 --- a/docker/docker-compose-test.yaml +++ b/docker/docker-compose-test.yaml @@ -2,4 +2,6 @@ name: event-demo-test include: - path: - parts/docker-compose-databases.yaml - - parts/docker-compose-port.yaml \ No newline at end of file + - parts/docker-compose-databases-expose.yaml + - parts/docker-compose-tools.yaml + - parts/docker-compose-traefik.yaml \ No newline at end of file diff --git a/docker/envs/docker-compose-dev.yaml b/docker/envs/docker-compose-dev.yaml deleted file mode 100644 index a6e06f1..0000000 --- a/docker/envs/docker-compose-dev.yaml +++ /dev/null @@ -1,14 +0,0 @@ -services: - traefik: - ports: - - "81:80" - - redis: - labels: - - "traefik.http.routers.redis.rule=Host(`redis.traefik.me`)" - - "traefik.http.services.redis.loadbalancer.server.port=8001" - - pgadmin: - labels: - - "traefik.http.routers.pgadmin.rule=Host(`pgadmin.traefik.me`)" - - "traefik.http.services.pgadmin.loadbalancer.server.port=80" diff --git a/docker/envs/docker-compose-prod.yaml b/docker/envs/docker-compose-prod.yaml deleted file mode 100644 index 96fe1b1..0000000 --- a/docker/envs/docker-compose-prod.yaml +++ /dev/null @@ -1,14 +0,0 @@ -services: - traefik: - ports: - - "80:80" - - redis: - labels: - - "traefik.http.routers.redis.rule=Host(`redis.traefik.me`)" - - "traefik.http.services.redis.loadbalancer.server.port=8001" - - pgadmin: - labels: - - "traefik.http.routers.pgadmin.rule=Host(`pgadmin.traefik.me`)" - - "traefik.http.services.pgadmin.loadbalancer.server.port=80" diff --git a/docker/parts/docker-compose-app.yaml b/docker/parts/docker-compose-app.yaml index 1a09e0e..0c4953e 100644 --- a/docker/parts/docker-compose-app.yaml +++ b/docker/parts/docker-compose-app.yaml @@ -1,5 +1,5 @@ services: - app: + api: build: context: ../.. dockerfile: docker/Dockerfile @@ -8,3 +8,6 @@ services: condition: service_completed_successfully postgresql: condition: service_healthy + labels: + - "traefik.http.routers.api.rule=Host(`api.traefik.me`)" + - "traefik.http.services.api.loadbalancer.server.port=8080" diff --git a/docker/parts/docker-compose-port.yaml b/docker/parts/docker-compose-databases-expose.yaml similarity index 100% rename from docker/parts/docker-compose-port.yaml rename to docker/parts/docker-compose-databases-expose.yaml diff --git a/docker/parts/docker-compose-tools.yaml b/docker/parts/docker-compose-tools.yaml index a75b22e..597a268 100644 --- a/docker/parts/docker-compose-tools.yaml +++ b/docker/parts/docker-compose-tools.yaml @@ -8,6 +8,15 @@ services: - pgadmin_password volumes: - pgadmin_data:/var/lib/pgadmin + labels: + - "traefik.http.routers.pgadmin.rule=Host(`pgadmin.postgresql.traefik.me`)" + - "traefik.http.services.pgadmin.loadbalancer.server.port=80" + + redis: + labels: + - "traefik.http.routers.redisinsight.rule=Host(`insight.redis.traefik.me`)" + - "traefik.http.routers.redisinsight.service=redisinsight" + - "traefik.http.services.redisinsight.loadbalancer.server.port=8001" secrets: pgadmin_password: diff --git a/docker/parts/docker-compose-traefik.yaml b/docker/parts/docker-compose-traefik.yaml index ddcecdf..ed40ddd 100644 --- a/docker/parts/docker-compose-traefik.yaml +++ b/docker/parts/docker-compose-traefik.yaml @@ -8,10 +8,12 @@ services: - "--log.level=DEBUG" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" + ports: + - "80:80" labels: - "traefik.enable=true" - - "traefik.http.routers.api.rule=Host(`dashboard.traefik.me`)" - - "traefik.http.services.api.loadbalancer.server.port=8080" - - "traefik.http.routers.api.service=api@internal" - - "traefik.http.routers.api.middlewares=api-auth" - - "traefik.http.middlewares.api-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/" # test:test + - "traefik.http.routers.traefik.rule=Host(`traefik.traefik.me`)" + - "traefik.http.services.traefik.loadbalancer.server.port=8080" + - "traefik.http.routers.traefik.service=api@internal" + - "traefik.http.routers.traefik.middlewares=traefik-auth" + - "traefik.http.middlewares.traefik-auth.basicauth.users=test:$$apr1$$H6uskkkW$$IgXLP6ewTrSuBkTrqE8wj/" # test:test