From 14af8a435326786c180d1a8bc29ec7f65cfca669 Mon Sep 17 00:00:00 2001 From: ekene leonard Date: Wed, 22 Jan 2025 17:21:46 +0100 Subject: [PATCH] update files structure for docker compose --- .github/workflows/cd.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/integration-tests.yml | 12 ++++----- Makefile | 8 +++--- README.md | 26 +++++++++---------- .../docker-compose.back.yaml | 10 +++---- .../docker-compose.dev-windows.yaml | 12 ++++----- .../docker-compose.dev.yaml | 16 ++++++------ .../docker-compose.yaml | 12 ++++----- 9 files changed, 50 insertions(+), 50 deletions(-) rename docker-compose.back.yaml => devops/docker-compose.back.yaml (86%) rename docker-compose.dev-windows.yaml => devops/docker-compose.dev-windows.yaml (88%) rename docker-compose.dev.yaml => devops/docker-compose.dev.yaml (83%) rename docker-compose.yaml => devops/docker-compose.yaml (86%) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 976c17ab..5254c216 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -39,5 +39,5 @@ jobs: ssh -p ${{ secrets.SERVER_PORT }} ${{ secrets.SERVER_USER }}@${{ secrets.SERVER_HOST }} " mkdir -p ${{ secrets.PROJECT_PATH }} cd ${{ secrets.PROJECT_PATH }} - docker-compose pull && docker-compose up --detach --remove-orphans + docker compose -f devops/docker-compose.yaml pull && docker compose -f devops/docker-compose.yaml up --detach--remove-orphans " diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5239585a..03524583 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,7 +38,7 @@ jobs: run: cp .env.dev .env - name: Start services - run: docker compose -f docker-compose.dev.yaml --env-file .env up -d --build + run: docker compose -f devops/docker-compose.dev.yaml --env-file .env up -d --build - name: Run tests run: | diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 6c0c1f04..6e50bda3 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -46,7 +46,7 @@ jobs: - name: Build and Start Containers run: | - docker compose -f docker-compose.dev.yaml --env-file .env up -d --build + docker compose -f devops/docker-compose.dev.yaml --env-file .env up -d --build echo "Waiting for containers to be ready..." sleep 30 @@ -65,19 +65,19 @@ jobs: # Check if the container is still running before logging if ! docker ps | grep -q backend; then echo "Backend container is not running!" - docker compose -f docker-compose.dev.yaml logs backend || true + docker compose -f devops/docker-compose.dev.yaml logs backend || true exit 1 fi # Log the backend service status for debugging purposes. - docker compose -f docker-compose.dev.yaml logs backend || true + docker compose -f devops/docker-compose.dev.yaml logs backend || true done - name: Apply Migrations run: | docker exec backend_dev alembic -c web_app/alembic.ini upgrade head || { echo "Migration failed. Showing backend logs:" - docker compose -f docker-compose.dev.yaml logs backend || true + docker compose -f devops/docker-compose.dev.yaml logs backend || true exit 1 } @@ -88,8 +88,8 @@ jobs: - name: Clean Up if: always() run: | - docker compose -f docker-compose.dev.yaml logs > docker-logs.txt || true - docker compose -f docker-compose.dev.yaml down -v + docker compose -f devops/docker-compose.dev.yaml logs > docker-logs.txt || true + docker compose -f devops/docker-compose.dev.yaml down -v - name: Upload Docker Logs on Failure if: failure() diff --git a/Makefile b/Makefile index 082e5c0b..fa437482 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,20 @@ prod: @echo "Setting up production environment..." - @docker-compose -f docker-compose.yaml up --build + @docker compose -f devops/docker-compose.yaml up --build @echo "Production environment is ready." dev: @echo "Setting up development environment..." - @docker-compose -f docker-compose.dev.yaml up --build + @docker compose -f devops/docker-compose.dev.yaml up --build windows: @echo "Setting up for Windows..." - @docker-compose -f docker-compose.dev-windows.yaml up --build + @docker compose -f devops/docker-compose.dev-windows.yaml up --build @echo "Windows setup completed." back: @echo "Starting backend services..." - @docker-compose -f docker-compose.back.yaml up --build + @docker compose -f devops/docker-compose.back.yaml up --build @echo "Backend services are running." all: diff --git a/README.md b/README.md index 7c5a3dcf..82849cd7 100644 --- a/README.md +++ b/README.md @@ -38,13 +38,13 @@ This guide explains how to start the development environment for the project usi To build and run the entire development environment, use the following command: ```sh - docker-compose -f docker-compose.dev.yaml up --build + docker compose -f devops/docker-compose.dev.yaml up --build ``` For Windows users, use this command to build and start the development environment: ```sh - docker-compose -f docker-compose.dev-windows.yaml up --build + docker compose -f devops/docker-compose.dev-windows.yaml up --build ``` This command will: @@ -110,13 +110,13 @@ To simplify repetitive tasks and ensure consistency, a `Makefile` is included in - **Docker Build Issues**: If changes in dependencies are not reflected, you may need to clear Docker's cache: ```sh - docker-compose -f docker-compose.dev.yaml build --no-cache + docker-compose -f devops/docker-compose.dev.yaml build --no-cache ``` Windows users: ```sh - docker-compose -f docker-compose.dev-windows.yaml build --no-cache + docker-compose -f devops/docker-compose.dev-windows.yaml build --no-cache ``` ## How to run test cases @@ -144,13 +144,13 @@ poetry run pytest To stop the environment and remove containers, use: ```sh -docker-compose -f docker-compose.dev.yaml down +docker compose -f devops/docker-compose.dev.yaml down ``` windows users: ```sh -docker-compose -f docker-compose.dev-windows.yaml down +docker compose -f devops/docker-compose.dev-windows.yaml down ``` This command stops all running containers and removes them, but the data volumes will persist. @@ -160,13 +160,13 @@ This command stops all running containers and removes them, but the data volumes If you have made changes to the code or Docker configuration, rebuild the containers: ```sh -docker-compose -f docker-compose.dev.yaml up --build +docker compose -f devops/docker-compose.dev.yaml up --build ``` windows users: ```sh -docker-compose -f docker-compose.dev-windows.yaml up --build +docker compose -f devops/docker-compose.dev-windows.yaml up --build ``` ## About Celery @@ -184,7 +184,7 @@ This project utilizes Celery to handle asynchronous tasks. The Celery workers an To start the Celery worker and Celery Beat services, use the following command in the terminal within your project directory: ```bash -docker-compose up -d celery celery_beat +docker compose up -d celery celery_beat ``` ### Stopping Celery @@ -208,13 +208,13 @@ docker-compose run --rm celery celery -A spotnet_tracker.celery_config purge 1. Run dev container ``` -docker-compose -f docker-compose.dev.yaml up --build +docker-compose -f devops/docker-compose.dev.yaml up --build ``` windows only: ``` -docker-compose -f docker-compose.dev-windows.yaml up --build +docker-compose -f devops/docker-compose.dev-windows.yaml up --build ``` 2. In new terminal window run command to populate db @@ -228,13 +228,13 @@ docker exec -ti backend_dev python -m web_app.db.seed_data Run up docker containers ```bash -docker-compose -f docker-compose.dev.yaml up --build +docker compose -f docker-compose.dev.yaml up --build ``` Windows users: ```bash -docker-compose -f docker-compose.dev-windows.yaml up --build +docker compose -f devops/docker-compose.dev-windows.yaml up --build ``` Go to backend container in new terminal window diff --git a/docker-compose.back.yaml b/devops/docker-compose.back.yaml similarity index 86% rename from docker-compose.back.yaml rename to devops/docker-compose.back.yaml index cd4b08be..fdff0d14 100644 --- a/docker-compose.back.yaml +++ b/devops/docker-compose.back.yaml @@ -6,14 +6,14 @@ networks: services: backend: - build: . + build: .. command: bash /app/entrypoint.sh container_name: backend_dev volumes: - - ./entrypoint.sh:/app/entrypoint.sh - - .:/app + - ../entrypoint.sh:/app/entrypoint.sh + - ..:/app env_file: - - .env.dev + - ../.env.dev expose: - "8000" ports: @@ -38,7 +38,7 @@ services: POSTGRES_PASSWORD: password volumes: - postgres_data_dev:/var/lib/postgresql/data - - ./init-db:/docker-entrypoint-initdb.d + - ../init-db:/docker-entrypoint-initdb.d networks: - app_network ports: diff --git a/docker-compose.dev-windows.yaml b/devops/docker-compose.dev-windows.yaml similarity index 88% rename from docker-compose.dev-windows.yaml rename to devops/docker-compose.dev-windows.yaml index acd46b58..c79453b8 100644 --- a/docker-compose.dev-windows.yaml +++ b/devops/docker-compose.dev-windows.yaml @@ -8,14 +8,14 @@ networks: services: backend: build: - context: . + context: .. dockerfile: Dockerfile.windows command: ["/bin/bash", "-c", "chmod +x /app/entrypoint.sh && /app/entrypoint.sh"] container_name: backend_dev volumes: - - .:/app + - ..:/app env_file: - - .env.dev + - ../.env.dev ports: - "8000:8000" networks: @@ -38,7 +38,7 @@ services: POSTGRES_PASSWORD: password volumes: - postgres_data_dev:/var/lib/postgresql/data - - ./init-db:/docker-entrypoint-initdb.d + - ../init-db:/docker-entrypoint-initdb.d networks: - app_network ports: @@ -51,11 +51,11 @@ services: frontend: build: - context: ./frontend + context: ../frontend dockerfile: Dockerfile.dev container_name: frontend_dev volumes: - - ./frontend:/app + - ../frontend:/app ports: - "3000:80" networks: diff --git a/docker-compose.dev.yaml b/devops/docker-compose.dev.yaml similarity index 83% rename from docker-compose.dev.yaml rename to devops/docker-compose.dev.yaml index bb9d8db5..eac2e03b 100644 --- a/docker-compose.dev.yaml +++ b/devops/docker-compose.dev.yaml @@ -1,4 +1,4 @@ -version: '3.8' +version: "3.8" networks: app_network: @@ -6,14 +6,14 @@ networks: services: backend: - build: . + build: .. command: ["/app/entrypoint.sh"] container_name: backend_dev volumes: - - ./entrypoint.sh:/app/entrypoint.sh - - .:/app + - ../entrypoint.sh:/app/entrypoint.sh + - ..:/app env_file: - - .env.dev + - ../.env.dev ports: - "8000:8000" networks: @@ -36,7 +36,7 @@ services: POSTGRES_PASSWORD: password volumes: - postgres_data_dev:/var/lib/postgresql/data - - ./init-db:/docker-entrypoint-initdb.d + - ../init-db:/docker-entrypoint-initdb.d networks: - app_network ports: @@ -49,11 +49,11 @@ services: frontend: build: - context: ./frontend + context: ../frontend dockerfile: Dockerfile.dev container_name: frontend_dev volumes: - - ./frontend:/app + - ../frontend:/app ports: - "3000:80" networks: diff --git a/docker-compose.yaml b/devops/docker-compose.yaml similarity index 86% rename from docker-compose.yaml rename to devops/docker-compose.yaml index 33bc9e77..ba8b6c19 100644 --- a/docker-compose.yaml +++ b/devops/docker-compose.yaml @@ -6,27 +6,27 @@ networks: services: nginx: - build: ./frontend + build: ../frontend container_name: nginx restart: unless-stopped ports: - "80:80" - "443:443" volumes: - - ./certs/spotnet.xyz.chain.crt:/etc/nginx/spotnet.xyz.chain.crt:ro - - ./certs/spotnet.xyz.key:/etc/nginx/spotnet.xyz.key:ro + - ../certs/spotnet.xyz.chain.crt:/etc/nginx/spotnet.xyz.chain.crt:ro + - ../certs/spotnet.xyz.key:/etc/nginx/spotnet.xyz.key:ro depends_on: - backend networks: - app_network backend: - build: . + build: .. command: ["bash", "/app/entrypoint.sh"] restart: always volumes: - - ./entrypoint.sh:/app/entrypoint.sh + - ../entrypoint.sh:/app/entrypoint.sh env_file: - - .env + - ../.env depends_on: - db expose: