From c05d7b3bc39f72399a40a384ecb68d11353c5f5c Mon Sep 17 00:00:00 2001 From: Eldor Date: Mon, 3 Nov 2025 16:26:58 +0500 Subject: [PATCH 1/4] Add CI for Docker Compose --- .github/workflows/ci.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..24e35be --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,27 @@ +name: CI - Build and Test Docker Compose + +on: + push: + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and run containers + run: | + docker compose build + docker compose up -d + + - name: Check running containers + run: docker ps + + - name: Stop containers + run: docker compose down From 7d5c472f416d337910d87abe799a6c54a4fbc21e Mon Sep 17 00:00:00 2001 From: Eldor Date: Mon, 3 Nov 2025 16:40:21 +0500 Subject: [PATCH 2/4] Trigger CI workflow --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index adee4eb..5b376d6 100644 --- a/README.md +++ b/README.md @@ -24,3 +24,4 @@ curl http://localhost:3000/store/my-key\?some\=value\&some-other\=other-value ```sh curl http://localhost:3000/my-key ``` +# test workflow Mon Nov 3 04:40:21 PM +05 2025 From 0e3a6f4d56c811961501fed4b565533893c8639c Mon Sep 17 00:00:00 2001 From: Eldor Date: Mon, 3 Nov 2025 16:43:44 +0500 Subject: [PATCH 3/4] Fix docker-compose.yml format for Compose v3 --- docker-compose.yml | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8adc9dc..5682b80 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,20 +1,23 @@ -redis: - image: redis - container_name: cache - expose: - - 6379 -app: - build: ./ - volumes: - - ./:/var/www/app - links: - - redis - ports: - - 3000:3000 - environment: - - REDIS_URL=redis://cache - - NODE_ENV=development - - PORT=3000 - command: - sh -c 'npm i && node server.js' +version: "3.8" +services: + redis: + image: redis + container_name: cache + expose: + - 6379 + + app: + build: ./ + volumes: + - ./:/var/www/app + links: + - redis + ports: + - "3000:3000" + environment: + - REDIS_URL=redis://cache + - NODE_ENV=development + - PORT=3000 + command: > + sh -c 'npm i && node server.js' From f3e838cff22d425a7c876c5d583d2a203c9693a7 Mon Sep 17 00:00:00 2001 From: Eldor Date: Mon, 3 Nov 2025 17:40:21 +0500 Subject: [PATCH 4/4] Add CD step: push Docker image to Docker Hub --- .github/workflows/ci.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24e35be..7aa8c5b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,3 +25,20 @@ jobs: - name: Stop containers run: docker compose down + + deploy: + needs: build + runs-on: ubuntu-latest + if: success() + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Login to Docker Hub + run: | + echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin + + - name: Build and push Docker image + run: | + docker build -t eldordevops/express-redis-docker:latest . + docker push eldordevops/express-redis-docker:latest