From a601356d673190b56b4bc32da594b07099006c3d Mon Sep 17 00:00:00 2001 From: Jotham Arinze Date: Mon, 24 Feb 2025 22:09:03 +0100 Subject: [PATCH 1/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 678eb616..b369fae4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# HNG12 DevOps Stage3 Task +# HNG12 DevOps Stage4 Task This Repo Contains the code for a microservice application comprising of several components communicating to each other. In other words, this is an example of microservice. These microservices are written in different languages. From 59501e5005c8c569e206e62f3976272764337646 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 1 Mar 2025 11:54:55 +0000 Subject: [PATCH 2/7] traefik issue --- .env | 22 ++-- .env_back | 30 ++++++ auth-api/Dockerfile | 14 +++ docker-compose.yaml | 70 ++++++++++++ docker-compose_backup.yaml | 102 ++++++++++++++++++ frontend/Dockerfile | 15 +++ log-message-processor/Dockerfile | 17 +++ log-message-processor/requirements_backup.txt | 3 + todos-api/Dockerfile | 12 +++ traefik.yml | 10 ++ users-api/Dockerfile | 13 +++ 11 files changed, 297 insertions(+), 11 deletions(-) create mode 100644 .env_back create mode 100644 auth-api/Dockerfile create mode 100644 docker-compose.yaml create mode 100644 docker-compose_backup.yaml create mode 100644 frontend/Dockerfile create mode 100644 log-message-processor/Dockerfile create mode 100644 log-message-processor/requirements_backup.txt create mode 100644 todos-api/Dockerfile create mode 100644 traefik.yml create mode 100644 users-api/Dockerfile diff --git a/.env b/.env index 0a007615..467e1443 100644 --- a/.env +++ b/.env @@ -1,30 +1,30 @@ -# frontend: +# frontend PORT=8080 AUTH_API_ADDRESS=http://auth-api:8081 TODOS_API_ADDRESS=http://todos-api:8082 -# auth-api: +# auth-api AUTH_API_PORT=8081 JWT_SECRET=myfancysecret USERS_API_ADDRESS=http://users-api:8083 -# todos-api: +# todos-api JWT_SECRET=myfancysecret -REDIS_HOST=redis-queue +REDIS_HOST=redis REDIS_PORT=6379 REDIS_CHANNEL=log_channel -# users-api: +# users-api SERVER_PORT=8083 JWT_SECRET=myfancysecret -# log-message-processor: -REDIS_HOST=redis-queue +# log-message-processor +REDIS_HOST=redis REDIS_PORT=6379 REDIS_CHANNEL=log_channel -#login details +# login details (not valid environment variables - remove or handle separately) # USERNAME PASSWORD -admin Admin123 -hng HngTech -user Password +# admin Admin123 +# hng HngTech +# user Password diff --git a/.env_back b/.env_back new file mode 100644 index 00000000..0a007615 --- /dev/null +++ b/.env_back @@ -0,0 +1,30 @@ +# frontend: +PORT=8080 +AUTH_API_ADDRESS=http://auth-api:8081 +TODOS_API_ADDRESS=http://todos-api:8082 + +# auth-api: +AUTH_API_PORT=8081 +JWT_SECRET=myfancysecret +USERS_API_ADDRESS=http://users-api:8083 + +# todos-api: +JWT_SECRET=myfancysecret +REDIS_HOST=redis-queue +REDIS_PORT=6379 +REDIS_CHANNEL=log_channel + +# users-api: +SERVER_PORT=8083 +JWT_SECRET=myfancysecret + +# log-message-processor: +REDIS_HOST=redis-queue +REDIS_PORT=6379 +REDIS_CHANNEL=log_channel + +#login details +# USERNAME PASSWORD +admin Admin123 +hng HngTech +user Password diff --git a/auth-api/Dockerfile b/auth-api/Dockerfile new file mode 100644 index 00000000..a5edeaee --- /dev/null +++ b/auth-api/Dockerfile @@ -0,0 +1,14 @@ +FROM golang:1.21 + +WORKDIR /app + +COPY go.mod go.sum ./ +RUN go mod download + +COPY . . + +RUN go build -o auth-api . + +EXPOSE 8080 + +CMD ["./auth-api"] diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..6fbd1b15 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,70 @@ +version: '3.8' + +services: + traefik: + image: traefik:v3.0 + container_name: traefik + restart: always + command: + - "--api.dashboard=true" + - "--providers.docker=true" + - "--entrypoints.web.address=:80" + ports: + - "80:80" + - "8080:8080" # Traefik dashboard + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "./traefik.yml:/traefik.yml" + networks: + - web + + frontend: + build: ./frontend + container_name: vue_frontend + labels: + - "traefik.enable=true" + - "traefik.http.routers.frontend.rule=Host(`3.84.100.53`)" + - "traefik.http.services.frontend.loadbalancer.server.port=80" + networks: + - web + + auth-api: + build: ./auth-api + container_name: auth_api + labels: + - "traefik.enable=true" + - "traefik.http.routers.auth.rule=Host(`3.84.100.53`) && PathPrefix(`/auth`)" + - "traefik.http.services.auth.loadbalancer.server.port=8080" + networks: + - web + + todos-api: + build: ./todos-api + container_name: todos_api + labels: + - "traefik.enable=true" + - "traefik.http.routers.todos.rule=Host(`3.84.100.53`) && PathPrefix(`/todos`)" + - "traefik.http.services.todos.loadbalancer.server.port=3000" + networks: + - web + + users-api: + build: ./users-api + container_name: users_api + labels: + - "traefik.enable=true" + - "traefik.http.routers.users.rule=Host(`3.84.100.53`) && PathPrefix(`/users`)" + - "traefik.http.services.users.loadbalancer.server.port=8083" + networks: + - web + + log-message-processor: + build: ./log-message-processor + container_name: log_processor + networks: + - web + +networks: + web: + external: true + diff --git a/docker-compose_backup.yaml b/docker-compose_backup.yaml new file mode 100644 index 00000000..de8aa751 --- /dev/null +++ b/docker-compose_backup.yaml @@ -0,0 +1,102 @@ +version: '3.8' + +services: + # Frontend (Vue.js) + frontend: + build: ./frontend + labels: + - "traefik.enable=true" + - "traefik.http.routers.frontend.rule=Host(`3.84.100.53`)" + - "traefik.http.routers.frontend.entrypoints=web" + - "traefik.http.services.frontend.loadbalancer.server.port=80" + restart: always + networks: + - app-network + + # Auth API (Go) + auth-api: + build: ./auth-api + environment: + - PORT=8080 + ports: + - "8080:8080" + labels: + - "traefik.enable=true" + - "traefik.http.routers.auth-api.rule=Host(`3.84.100.53`) && PathPrefix(`/api/auth`)" + - "traefik.http.routers.auth-api.entrypoints=web" + - "traefik.http.services.auth-api.loadbalancer.server.port=8080" + restart: always + networks: + - app-network + + # Todos API (Node.js) + todos-api: + build: ./todos-api + environment: + - PORT=3000 + ports: + - "3000:3000" + labels: + - "traefik.enable=true" + - "traefik.http.routers.todos-api.rule=Host(`3.84.100.53`) && PathPrefix(`/api/todos`)" + - "traefik.http.routers.todos-api.entrypoints=web" + - "traefik.http.services.todos-api.loadbalancer.server.port=3000" + depends_on: + - redis + restart: always + networks: + - app-network + + # Users API (Java/Spring Boot) + users-api: + build: ./users-api + environment: + - PORT=8081 + ports: + - "8081:8081" + labels: + - "traefik.enable=true" + - "traefik.http.routers.users-api.rule=Host(`3.84.100.53`) && PathPrefix(`/api/users`)" + - "traefik.http.routers.users-api.entrypoints=web" + - "traefik.http.services.users-api.loadbalancer.server.port=8081" + restart: always + networks: + - app-network + + # Log Message Processor (Python) + log-message-processor: + build: ./log-message-processor + env_file: + - .env + depends_on: + - redis + restart: always + networks: + - app-network + + # Redis Queue + redis: + image: redis:alpine + restart: always + networks: + - app-network + + # Traefik Reverse Proxy + traefik: + image: traefik:v2.5 + command: + - "--api.dashboard=true" + - "--providers.docker=true" + - "--entrypoints.web.address=:80" + ports: + - "80:80" + - "8082:8080" # Traefik dashboard + volumes: + - "/var/run/docker.sock:/var/run/docker.sock" + networks: + - app-network + +networks: + app-network: + driver: bridge + diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 00000000..4fc01ea0 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,15 @@ +FROM node:12 as build-stage + +WORKDIR /app + +COPY package*.json ./ +RUN npm install + +COPY . . + +RUN npm run build + +FROM nginx:alpine +COPY --from=build-stage /app/dist /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] diff --git a/log-message-processor/Dockerfile b/log-message-processor/Dockerfile new file mode 100644 index 00000000..21b31afd --- /dev/null +++ b/log-message-processor/Dockerfile @@ -0,0 +1,17 @@ +FROM python:3.9 + +# Set the working directory +WORKDIR /app + +# Copy the requirements file +COPY requirements.txt . + +# Upgrade pip and install dependencies +RUN pip install --upgrade pip && \ + pip install redis>=5.0.0 requests>=2.31.0 thriftpy2>=0.4.16 py_zipkin --upgrade + +# Copy the application code +COPY . . + +# Run the application +CMD ["python", "main.py"] diff --git a/log-message-processor/requirements_backup.txt b/log-message-processor/requirements_backup.txt new file mode 100644 index 00000000..3cae0b2d --- /dev/null +++ b/log-message-processor/requirements_backup.txt @@ -0,0 +1,3 @@ +redis==2.10.6 +py_zipkin==0.11.0 +requests \ No newline at end of file diff --git a/todos-api/Dockerfile b/todos-api/Dockerfile new file mode 100644 index 00000000..142858b0 --- /dev/null +++ b/todos-api/Dockerfile @@ -0,0 +1,12 @@ +FROM node:16 + +WORKDIR /app + +COPY package*.json ./ +RUN npm install + +COPY . . + +EXPOSE 3000 + +CMD ["npm", "start"] diff --git a/traefik.yml b/traefik.yml new file mode 100644 index 00000000..e51ef3da --- /dev/null +++ b/traefik.yml @@ -0,0 +1,10 @@ +api: + dashboard: true + +entryPoints: + web: + address: ":80" + +providers: + docker: + exposedByDefault: false diff --git a/users-api/Dockerfile b/users-api/Dockerfile new file mode 100644 index 00000000..2e9d3ca2 --- /dev/null +++ b/users-api/Dockerfile @@ -0,0 +1,13 @@ +# Build stage +FROM maven:3.8.4-openjdk-11 as build-stage +WORKDIR /app +COPY pom.xml . +COPY src ./src +RUN mvn package -DskipTests + +# Run stage +FROM openjdk:11-jre-slim +WORKDIR /app +COPY --from=build-stage /app/target/users-api-0.0.1-SNAPSHOT.jar ./users-api.jar +EXPOSE 8080 +CMD ["java", "-jar", "users-api.jar"] From e838f6eb832bc087f915745dbe00176231dfc753 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 1 Mar 2025 13:33:08 +0000 Subject: [PATCH 3/7] traefik dashboard working --- docker-compose.yaml | 14 ++++++++++++++ traefik.yml | 7 +++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 6fbd1b15..e0a14654 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -21,6 +21,8 @@ services: frontend: build: ./frontend container_name: vue_frontend + ports: + - "8081:80" # Change exposed port to 8081 labels: - "traefik.enable=true" - "traefik.http.routers.frontend.rule=Host(`3.84.100.53`)" @@ -31,6 +33,8 @@ services: auth-api: build: ./auth-api container_name: auth_api + expose: + - "8080" labels: - "traefik.enable=true" - "traefik.http.routers.auth.rule=Host(`3.84.100.53`) && PathPrefix(`/auth`)" @@ -41,6 +45,8 @@ services: todos-api: build: ./todos-api container_name: todos_api + expose: + - "3000" labels: - "traefik.enable=true" - "traefik.http.routers.todos.rule=Host(`3.84.100.53`) && PathPrefix(`/todos`)" @@ -51,6 +57,8 @@ services: users-api: build: ./users-api container_name: users_api + expose: + - "8083" labels: - "traefik.enable=true" - "traefik.http.routers.users.rule=Host(`3.84.100.53`) && PathPrefix(`/users`)" @@ -61,6 +69,12 @@ services: log-message-processor: build: ./log-message-processor container_name: log_processor + expose: + - "5000" # Change to the correct port your app listens on + labels: + - "traefik.enable=true" + - "traefik.http.routers.log.rule=Host(`3.84.100.53`) && PathPrefix(`/logs`)" + - "traefik.http.services.log.loadbalancer.server.port=5000" networks: - web diff --git a/traefik.yml b/traefik.yml index e51ef3da..d0d4d1b6 100644 --- a/traefik.yml +++ b/traefik.yml @@ -1,10 +1,13 @@ api: dashboard: true + insecure: true entryPoints: web: address: ":80" + websecure: + address: ":443" providers: - docker: - exposedByDefault: false + docker: {} + From 56435f2dc65bfc59e0076a83217b514a09c3a8a6 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 1 Mar 2025 19:02:47 +0000 Subject: [PATCH 4/7] Update .env and Traefik routing for frontend login --- docker-compose.yaml | 92 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 71 insertions(+), 21 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index e0a14654..80242d1f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -6,79 +6,129 @@ services: container_name: traefik restart: always command: - - "--api.dashboard=true" - - "--providers.docker=true" - - "--entrypoints.web.address=:80" + - "--configFile=/traefik.yml" ports: - "80:80" - - "8080:8080" # Traefik dashboard + - "443:443" + - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./traefik.yml:/traefik.yml" + - "./letsencrypt:/letsencrypt" + labels: + - "traefik.enable=true" + - "traefik.http.routers.traefik.rule=Host(`nemyred.xyz`) && PathPrefix(`/dashboard`)" + - "traefik.http.routers.traefik.entrypoints=websecure" + - "traefik.http.routers.traefik.tls=true" + - "traefik.http.routers.traefik.tls.certresolver=letsencrypt" + - "traefik.http.services.traefik.loadbalancer.server.port=8080" networks: - web frontend: build: ./frontend container_name: vue_frontend - ports: - - "8081:80" # Change exposed port to 8081 + expose: + - "80" + env_file: + - .env # Ensure .env with updated AUTH_API_ADDRESS is used + environment: + - NODE_ENV=production # Force production mode to use correct env labels: - "traefik.enable=true" - - "traefik.http.routers.frontend.rule=Host(`3.84.100.53`)" + - "traefik.http.routers.frontend.rule=Host(`nemyred.xyz`)" + - "traefik.http.routers.frontend.entrypoints=websecure" + - "traefik.http.routers.frontend.tls=true" + - "traefik.http.routers.frontend.tls.certresolver=letsencrypt" - "traefik.http.services.frontend.loadbalancer.server.port=80" networks: - web + depends_on: + - auth-api + - todos-api auth-api: build: ./auth-api container_name: auth_api expose: - - "8080" + - "8081" + env_file: + - .env labels: - "traefik.enable=true" - - "traefik.http.routers.auth.rule=Host(`3.84.100.53`) && PathPrefix(`/auth`)" - - "traefik.http.services.auth.loadbalancer.server.port=8080" + - "traefik.http.routers.auth.rule=Host(`nemyred.xyz`) && (PathPrefix(`/api/auth`) || PathPrefix(`/login`))" # Fallback for /login + - "traefik.http.routers.auth.entrypoints=websecure" + - "traefik.http.routers.auth.tls=true" + - "traefik.http.routers.auth.tls.certresolver=letsencrypt" + - "traefik.http.routers.auth.middlewares=auth-strip" + - "traefik.http.middlewares.auth-strip.stripprefix.prefixes=/api/auth" # Only strip /api/auth, not /login + - "traefik.http.services.auth.loadbalancer.server.port=8081" networks: - web + depends_on: + - users-api todos-api: build: ./todos-api container_name: todos_api expose: - - "3000" + - "8082" + env_file: + - .env labels: - "traefik.enable=true" - - "traefik.http.routers.todos.rule=Host(`3.84.100.53`) && PathPrefix(`/todos`)" - - "traefik.http.services.todos.loadbalancer.server.port=3000" + - "traefik.http.routers.todos.rule=Host(`nemyred.xyz`) && PathPrefix(`/api/todos`)" + - "traefik.http.routers.todos.entrypoints=websecure" + - "traefik.http.routers.todos.tls=true" + - "traefik.http.routers.todos.tls.certresolver=letsencrypt" + - "traefik.http.routers.todos.middlewares=todos-strip" + - "traefik.http.middlewares.todos-strip.stripprefix.prefixes=/api/todos" + - "traefik.http.services.todos.loadbalancer.server.port=8082" networks: - web + depends_on: + - redis users-api: build: ./users-api container_name: users_api expose: - "8083" + env_file: + - .env + environment: + - SPRING_REDIS_HOST=redis + - SPRING_REDIS_PORT=6379 labels: - "traefik.enable=true" - - "traefik.http.routers.users.rule=Host(`3.84.100.53`) && PathPrefix(`/users`)" + - "traefik.http.routers.users.rule=Host(`nemyred.xyz`) && PathPrefix(`/api/users`)" + - "traefik.http.routers.users.entrypoints=websecure" + - "traefik.http.routers.users.tls=true" + - "traefik.http.routers.users.tls.certresolver=letsencrypt" + - "traefik.http.routers.users.middlewares=users-strip" + - "traefik.http.middlewares.users-strip.stripprefix.prefixes=/api/users" - "traefik.http.services.users.loadbalancer.server.port=8083" networks: - web + depends_on: + - redis log-message-processor: build: ./log-message-processor container_name: log_processor - expose: - - "5000" # Change to the correct port your app listens on - labels: - - "traefik.enable=true" - - "traefik.http.routers.log.rule=Host(`3.84.100.53`) && PathPrefix(`/logs`)" - - "traefik.http.services.log.loadbalancer.server.port=5000" + env_file: + - .env + networks: + - web + depends_on: + - redis + + redis: + image: redis:alpine + container_name: devops-stage-4-redis-1 networks: - web networks: web: external: true - From d54fc25033ad301622623483abeab85e78828e1a Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 1 Mar 2025 19:07:17 +0000 Subject: [PATCH 5/7] Update .env and Traefik routing for frontend login --- .env | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 467e1443..445f287b 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ # frontend PORT=8080 -AUTH_API_ADDRESS=http://auth-api:8081 -TODOS_API_ADDRESS=http://todos-api:8082 +AUTH_API_ADDRESS=https://nemyred.xyz/api/auth +TODOS_API_ADDRESS=https://nemyred.xyz/api/todos # auth-api AUTH_API_PORT=8081 From e4d09d086bf8731993f3d3d3f7e837cfe75027e7 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 1 Mar 2025 19:17:40 +0000 Subject: [PATCH 6/7] Updated .env --- .gitignore | 1 + docker-compose_backup.yaml | 102 ------------------------------------- traefik.yml | 22 +++++++- users-api/Dockerfile | 6 +-- 4 files changed, 24 insertions(+), 107 deletions(-) create mode 100644 .gitignore delete mode 100644 docker-compose_backup.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..ccc90aae --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +letsencrypt/ diff --git a/docker-compose_backup.yaml b/docker-compose_backup.yaml deleted file mode 100644 index de8aa751..00000000 --- a/docker-compose_backup.yaml +++ /dev/null @@ -1,102 +0,0 @@ -version: '3.8' - -services: - # Frontend (Vue.js) - frontend: - build: ./frontend - labels: - - "traefik.enable=true" - - "traefik.http.routers.frontend.rule=Host(`3.84.100.53`)" - - "traefik.http.routers.frontend.entrypoints=web" - - "traefik.http.services.frontend.loadbalancer.server.port=80" - restart: always - networks: - - app-network - - # Auth API (Go) - auth-api: - build: ./auth-api - environment: - - PORT=8080 - ports: - - "8080:8080" - labels: - - "traefik.enable=true" - - "traefik.http.routers.auth-api.rule=Host(`3.84.100.53`) && PathPrefix(`/api/auth`)" - - "traefik.http.routers.auth-api.entrypoints=web" - - "traefik.http.services.auth-api.loadbalancer.server.port=8080" - restart: always - networks: - - app-network - - # Todos API (Node.js) - todos-api: - build: ./todos-api - environment: - - PORT=3000 - ports: - - "3000:3000" - labels: - - "traefik.enable=true" - - "traefik.http.routers.todos-api.rule=Host(`3.84.100.53`) && PathPrefix(`/api/todos`)" - - "traefik.http.routers.todos-api.entrypoints=web" - - "traefik.http.services.todos-api.loadbalancer.server.port=3000" - depends_on: - - redis - restart: always - networks: - - app-network - - # Users API (Java/Spring Boot) - users-api: - build: ./users-api - environment: - - PORT=8081 - ports: - - "8081:8081" - labels: - - "traefik.enable=true" - - "traefik.http.routers.users-api.rule=Host(`3.84.100.53`) && PathPrefix(`/api/users`)" - - "traefik.http.routers.users-api.entrypoints=web" - - "traefik.http.services.users-api.loadbalancer.server.port=8081" - restart: always - networks: - - app-network - - # Log Message Processor (Python) - log-message-processor: - build: ./log-message-processor - env_file: - - .env - depends_on: - - redis - restart: always - networks: - - app-network - - # Redis Queue - redis: - image: redis:alpine - restart: always - networks: - - app-network - - # Traefik Reverse Proxy - traefik: - image: traefik:v2.5 - command: - - "--api.dashboard=true" - - "--providers.docker=true" - - "--entrypoints.web.address=:80" - ports: - - "80:80" - - "8082:8080" # Traefik dashboard - volumes: - - "/var/run/docker.sock:/var/run/docker.sock" - networks: - - app-network - -networks: - app-network: - driver: bridge - diff --git a/traefik.yml b/traefik.yml index d0d4d1b6..6872c427 100644 --- a/traefik.yml +++ b/traefik.yml @@ -1,13 +1,31 @@ api: dashboard: true - insecure: true + insecure: true # For testing only (not recommended for production) entryPoints: web: address: ":80" + http: + redirections: + entryPoint: + to: websecure + scheme: https websecure: address: ":443" providers: - docker: {} + docker: + endpoint: "unix:///var/run/docker.sock" + exposedByDefault: false + network: web # Ensure Traefik uses the correct Docker network +certificatesResolvers: + letsencrypt: + acme: + email: ndiwechi1@gmail.com + storage: /letsencrypt/acme.json + httpChallenge: + entryPoint: web + +log: + level: DEBUG # Enable debug logs for troubleshooting diff --git a/users-api/Dockerfile b/users-api/Dockerfile index 2e9d3ca2..69b28dba 100644 --- a/users-api/Dockerfile +++ b/users-api/Dockerfile @@ -1,13 +1,13 @@ # Build stage -FROM maven:3.8.4-openjdk-11 as build-stage +FROM maven:3.8.4-openjdk-8 AS build-stage WORKDIR /app COPY pom.xml . COPY src ./src RUN mvn package -DskipTests # Run stage -FROM openjdk:11-jre-slim +FROM openjdk:8-jre-slim WORKDIR /app COPY --from=build-stage /app/target/users-api-0.0.1-SNAPSHOT.jar ./users-api.jar -EXPOSE 8080 +EXPOSE 8083 CMD ["java", "-jar", "users-api.jar"] From 454816a55f30d3d5459a1dc626da7130e377a351 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Sat, 1 Mar 2025 19:21:08 +0000 Subject: [PATCH 7/7] removed .env_back --- .env_back | 30 ------------------------------ 1 file changed, 30 deletions(-) delete mode 100644 .env_back diff --git a/.env_back b/.env_back deleted file mode 100644 index 0a007615..00000000 --- a/.env_back +++ /dev/null @@ -1,30 +0,0 @@ -# frontend: -PORT=8080 -AUTH_API_ADDRESS=http://auth-api:8081 -TODOS_API_ADDRESS=http://todos-api:8082 - -# auth-api: -AUTH_API_PORT=8081 -JWT_SECRET=myfancysecret -USERS_API_ADDRESS=http://users-api:8083 - -# todos-api: -JWT_SECRET=myfancysecret -REDIS_HOST=redis-queue -REDIS_PORT=6379 -REDIS_CHANNEL=log_channel - -# users-api: -SERVER_PORT=8083 -JWT_SECRET=myfancysecret - -# log-message-processor: -REDIS_HOST=redis-queue -REDIS_PORT=6379 -REDIS_CHANNEL=log_channel - -#login details -# USERNAME PASSWORD -admin Admin123 -hng HngTech -user Password