[GH-ISSUE #2691] Stop services on job exit #1214

Closed
opened 2026-03-01 21:49:43 +03:00 by kerem · 9 comments
Owner

Originally created by @EDM115 on GitHub (Mar 6, 2025).
Original GitHub issue: https://github.com/nektos/act/issues/2691

Act version

act version 0.2.75

Feature description

When a job contains a services field, the relative containers should be stopped when the job exits (successfully or not), for example to free ports for further job services.
As it could be a breaking change, maybe keep it behind a flag, like --stop-services

Originally created by @EDM115 on GitHub (Mar 6, 2025). Original GitHub issue: https://github.com/nektos/act/issues/2691 ### Act version act version 0.2.75 ### Feature description When a job contains a `services` field, the relative containers should be stopped when the job exits (successfully or not), for example to free ports for further job services. As it could be a breaking change, maybe keep it behind a flag, like `--stop-services`
kerem 2026-03-01 21:49:43 +03:00
Author
Owner

@ChristopherHX commented on GitHub (Mar 6, 2025):

--rm?

<!-- gh-comment-id:2704860373 --> @ChristopherHX commented on GitHub (Mar 6, 2025): `--rm`?
Author
Owner

@EDM115 commented on GitHub (Mar 7, 2025):

not exactly, as what --rm does is "automatically remove container(s)/volume(s) after a workflow(s) failure"

the thing is, i'd like them to be stopped (not removed) once the job is over. example workflow :

name: Run the workflows suite locally
on:
  workflow_dispatch

jobs:
  lint:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        node-version: [22]

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: "pnpm"

      - name: Install dependencies
        run: pnpm install

      - name: Run linting
        run: pnpm lint

  tests:
    needs: lint
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        node-version: [22]

    services:
      postgres:
        image: postgres:16-alpine
        env:
          POSTGRES_PASSWORD: test
          POSTGRES_USER: postgres
        options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
        ports:
          - 5433:5432
      postgres-ingestion:
        image: postgres:16-alpine
        env:
          POSTGRES_PASSWORD: test
          POSTGRES_USER: postgres
        options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
        ports:
          - 5434:5432

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: "pnpm"

      - name: Install dependencies
        run: pnpm install

      - name: Setup the database
        working-directory: services/backend
        run: pnpm migratetest

      - name: Setup the ingestion database
        working-directory: packages/db-migrations
        run: pnpm ingestion:migrate:test

      - name: Run tests
        env:
          NODE_OPTIONS: --max_old_space_size=4096
        run: pnpm test

  docker:
    needs: [lint, tests]
    runs-on: ubuntu-22.04
    env:
      IMAGE_TAG: "latest"
    strategy:
      fail-fast: false
      matrix:
        node-version: [22]
        include:
          - dockerfile: services/backend/Dockerfile
            image_name: backend
          - dockerfile: services/frontend/Dockerfile
            image_name: frontend

    services:
      postgres:
        image: postgres:16-alpine
        env:
          POSTGRES_PASSWORD: test
          POSTGRES_USER: postgres
        options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
        ports:
          - 5433:5432
      postgres-ingestion:
        image: postgres:16-alpine
        env:
          POSTGRES_PASSWORD: test
          POSTGRES_USER: postgres
        options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
        ports:
          - 5434:5432
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Build the frontend Docker image
        uses: docker/build-push-action@v6
        with:
          context: .
          file: services/frontend/Dockerfile
          tags: frontend:${{ env.IMAGE_TAG }}
      
      - name: Build the backend Docker image
        uses: docker/build-push-action@v6
        with:
          context: .
          file: services/backend/Dockerfile
          tags: backend:${{ env.IMAGE_TAG }}

      - name: Create Docker network
        run: docker network create test

      - name: Run application container backend
        working-directory: services/backend
        run: |
          docker run -d -p 3001:3001 --name backend --network test --add-host=host.docker.internal:host-gateway --env-file ./.env.e2e backend:${{ env.IMAGE_TAG }}

      - name: Run application container frontend
        working-directory: services/frontend
        run: |
          docker run -d -p 3000:3000 --name frontend --network test --env-file ./.env.e2e frontend:${{ env.IMAGE_TAG }}

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: "pnpm"

      - name: Install dependencies
        run: |
          pnpm i --frozen-lockfile

      - name: Set up Cypress binary cache
        uses: actions/cache@v4
        with:
          path: ~/.cache/Cypress
          key: cypress-${{ runner.os }}-cypress-${{ hashFiles('pnpm-lock.yaml') }}

      - name: Setup ingestion database
        working-directory: packages/db-migrations
        run: pnpm ingestion:migrate:dev

      - name: Seed database
        working-directory: services/backend
        run: |
          pnpm migratedev
          pnpm prisma:seed-dev base
          pnpm prisma:seed-dev demo

      - name: check backend - postgres connection
        run: curl http://localhost:3001/bdd-status

      - name: check backend - ingestion-db connection
        run: curl http://localhost:3001/db-ingestion-status

      - name: Run Cypress Tests - Chrome
        uses: cypress-io/github-action@v6
        with:
          install: false
          browser: chrome
          record: false
          config-file: cypress.config.ts
          working-directory: ./services/frontend

      - name: Stop and remove frontend container
        run: |
          docker stop frontend
          docker rm frontend

      - name: Stop and remove backend container
        run: |
          docker stop backend
          docker rm backend

in this scenario, i'd like the 2 services containers of the tests steps to be stopped once the job finishes, so we can create new ones on the docker step, and free the 5433 and 5434 ports on the host

<!-- gh-comment-id:2705796268 --> @EDM115 commented on GitHub (Mar 7, 2025): not exactly, as what `--rm` does is "automatically remove container(s)/volume(s) after a workflow(s) failure" the thing is, i'd like them to be _stopped_ (not removed) once the job is over. example workflow : ```yml name: Run the workflows suite locally on: workflow_dispatch jobs: lint: runs-on: ubuntu-22.04 strategy: matrix: node-version: [22] steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Install dependencies run: pnpm install - name: Run linting run: pnpm lint tests: needs: lint runs-on: ubuntu-22.04 strategy: matrix: node-version: [22] services: postgres: image: postgres:16-alpine env: POSTGRES_PASSWORD: test POSTGRES_USER: postgres options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5 ports: - 5433:5432 postgres-ingestion: image: postgres:16-alpine env: POSTGRES_PASSWORD: test POSTGRES_USER: postgres options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5 ports: - 5434:5432 steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Install dependencies run: pnpm install - name: Setup the database working-directory: services/backend run: pnpm migratetest - name: Setup the ingestion database working-directory: packages/db-migrations run: pnpm ingestion:migrate:test - name: Run tests env: NODE_OPTIONS: --max_old_space_size=4096 run: pnpm test docker: needs: [lint, tests] runs-on: ubuntu-22.04 env: IMAGE_TAG: "latest" strategy: fail-fast: false matrix: node-version: [22] include: - dockerfile: services/backend/Dockerfile image_name: backend - dockerfile: services/frontend/Dockerfile image_name: frontend services: postgres: image: postgres:16-alpine env: POSTGRES_PASSWORD: test POSTGRES_USER: postgres options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5 ports: - 5433:5432 postgres-ingestion: image: postgres:16-alpine env: POSTGRES_PASSWORD: test POSTGRES_USER: postgres options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5 ports: - 5434:5432 steps: - name: Checkout code uses: actions/checkout@v4 - name: Build the frontend Docker image uses: docker/build-push-action@v6 with: context: . file: services/frontend/Dockerfile tags: frontend:${{ env.IMAGE_TAG }} - name: Build the backend Docker image uses: docker/build-push-action@v6 with: context: . file: services/backend/Dockerfile tags: backend:${{ env.IMAGE_TAG }} - name: Create Docker network run: docker network create test - name: Run application container backend working-directory: services/backend run: | docker run -d -p 3001:3001 --name backend --network test --add-host=host.docker.internal:host-gateway --env-file ./.env.e2e backend:${{ env.IMAGE_TAG }} - name: Run application container frontend working-directory: services/frontend run: | docker run -d -p 3000:3000 --name frontend --network test --env-file ./.env.e2e frontend:${{ env.IMAGE_TAG }} - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Install dependencies run: | pnpm i --frozen-lockfile - name: Set up Cypress binary cache uses: actions/cache@v4 with: path: ~/.cache/Cypress key: cypress-${{ runner.os }}-cypress-${{ hashFiles('pnpm-lock.yaml') }} - name: Setup ingestion database working-directory: packages/db-migrations run: pnpm ingestion:migrate:dev - name: Seed database working-directory: services/backend run: | pnpm migratedev pnpm prisma:seed-dev base pnpm prisma:seed-dev demo - name: check backend - postgres connection run: curl http://localhost:3001/bdd-status - name: check backend - ingestion-db connection run: curl http://localhost:3001/db-ingestion-status - name: Run Cypress Tests - Chrome uses: cypress-io/github-action@v6 with: install: false browser: chrome record: false config-file: cypress.config.ts working-directory: ./services/frontend - name: Stop and remove frontend container run: | docker stop frontend docker rm frontend - name: Stop and remove backend container run: | docker stop backend docker rm backend ``` in this scenario, i'd like the 2 services containers of the `tests` steps to be stopped once the job finishes, so we can create new ones on the `docker` step, and free the 5433 and 5434 ports on the host
Author
Owner

@EDM115 commented on GitHub (Mar 7, 2025):

also --rm won't do anything if the tests job succeeds, which as you might guess is problematic for the docker step afterwards 😄

<!-- gh-comment-id:2705798866 --> @EDM115 commented on GitHub (Mar 7, 2025): also `--rm` won't do anything if the `tests` job succeeds, which as you might guess is problematic for the `docker` step afterwards 😄
Author
Owner

@ChristopherHX commented on GitHub (Mar 8, 2025):

also --rm won't do anything if the tests job succeeds

Did you found a bug that containers are still existing on job success? if job succeeds removal of containers is the default. --rm just means do it for failed jobs as well.

I am not working on enhancement requests for act right now, someone else could do this

<!-- gh-comment-id:2708371825 --> @ChristopherHX commented on GitHub (Mar 8, 2025): > also `--rm` won't do anything if the `tests` job succeeds Did you found a bug that containers are still existing on job success? if job succeeds removal of containers is the default. `--rm` just means do it for failed jobs as well. _I am not working on enhancement requests for act right now, someone else could do this_
Author
Owner

@EDM115 commented on GitHub (Mar 10, 2025):

only services containers stayed up and running after a job success for whatever reason

<!-- gh-comment-id:2709828736 --> @EDM115 commented on GitHub (Mar 10, 2025): only services containers stayed up and running after a job success for whatever reason
Author
Owner

@EDM115 commented on GitHub (Mar 10, 2025):

Image
Image
also as you can see, even with the --rm flag and the job failing, the images are still up and running :(

<!-- gh-comment-id:2709894511 --> @EDM115 commented on GitHub (Mar 10, 2025): ![Image](https://github.com/user-attachments/assets/48a3e6b4-c4fe-4073-8464-a3d1e51d1b98) ![Image](https://github.com/user-attachments/assets/c3f8abc4-2419-46bc-aebf-df6343c070a8) also as you can see, even with the `--rm` flag **and** the job failing, the images are still up and running :(
Author
Owner

@EDM115 commented on GitHub (Mar 10, 2025):

Workflow
name: Run the workflows suite locally
on:
  workflow_dispatch

env:
  DATABASE_URL: postgresql://postgres:test@localhost:5433/backend-test?schema=public
  INGESTION_DB_URL: postgresql://postgres:test@localhost:5434/ingestion-test?schema=public

jobs:
  lint:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        node-version: [22]

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: "pnpm"

      - name: Install dependencies
        run: pnpm install

      - name: Run linting
        run: pnpm lint

  tests:
    needs: lint
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        node-version: [22]

    services:
      postgres:
        image: postgres:16-alpine
        env:
          POSTGRES_PASSWORD: test
          POSTGRES_USER: postgres
        options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
        ports:
          - 5433:5432
      postgres-ingestion:
        image: postgres:16-alpine
        env:
          POSTGRES_PASSWORD: test
          POSTGRES_USER: postgres
        options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
        ports:
          - 5434:5432

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}
          cache: "pnpm"

      - name: Install dependencies
        run: pnpm install

      - name: Setup the database
        working-directory: services/backend
        run: pnpm migratetest

      - name: Setup the ingestion database
        working-directory: packages/db-migrations
        run: INGESTION_DB_URL=${INGESTION_DB_URL} pnpm ingestion:migrate:test

      - name: Run tests
        env:
          NODE_OPTIONS: --max_old_space_size=4096
        run: pnpm test

  docker:
    needs: [lint, tests]
    runs-on: ubuntu-22.04
    env:
      IMAGE_TAG: "latest"
    strategy:
      fail-fast: false
      matrix:
        node-version: [22]
    
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
    
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      
      - name: Create custom network
        run: docker network create test || true

      - name: Start backend Postgres container
        run: |
          docker run -d \
            --network test \
            --name workflow-postgres-backend \
            -e POSTGRES_PASSWORD=test \
            -e POSTGRES_USER=postgres \
            -p 5433:5432 \
            postgres:16-alpine

      - name: Start ingestion Postgres container
        run: |
          docker run -d \
            --network test \
            --name workflow-postgres-ingestion \
            -e POSTGRES_PASSWORD=test \
            -e POSTGRES_USER=postgres \
            -p 5434:5432 \
            postgres:16-alpine

      - name: Build the data-ingestion Docker image
        uses: docker/build-push-action@v6
        with:
          context: .
          file: services/data-ingestion/Dockerfile
          tags: workflow/data-ingestion:${{ env.IMAGE_TAG }}
          load: true

      - name: Build the backend Docker image
        uses: docker/build-push-action@v6
        with:
          context: .
          file: services/backend/Dockerfile
          tags: workflow/backend:${{ env.IMAGE_TAG }}
          load: true

      - name: Build the frontend Docker image
        uses: docker/build-push-action@v6
        with:
          context: .
          file: services/frontend/Dockerfile
          tags: workflow/frontend:${{ env.IMAGE_TAG }}
          load: true

      - name: Run application container backend
        working-directory: services/backend
        run: |
          docker run -d -p 3001:3001 --name backend --network test --add-host=host.docker.internal:host-gateway --env-file ./.env.e2e workflow/backend:${{ env.IMAGE_TAG }}

      - name: Run application container frontend
        working-directory: services/frontend
        run: |
          docker run -d -p 3000:3000 --name frontend --network test --env-file ./.env.e2e workflow/frontend:${{ env.IMAGE_TAG }}

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node-version }}

      - name: Install dependencies
        run: |
          pnpm i --frozen-lockfile

      - name: Setup ingestion database
        working-directory: packages/db-migrations
        run: pnpm ingestion:migrate:dev

      - name: Seed database
        working-directory: services/backend
        run: |
          pnpm migratedev
          pnpm prisma:seed-dev base
          pnpm prisma:seed-dev demo

      - name: check backend - postgres connection
        run: curl http://localhost:3001/bdd-status

      - name: check backend - ingestion-db connection
        run: curl http://localhost:3001/db-ingestion-status
      
      # Commented to trigger a failure
      # - name: Install required Cypress dependencies
      #   run: |
      #     sudo apt-get update
      #     sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb

      - name: Run Cypress Tests - Chrome
        uses: cypress-io/github-action@v6
        with:
          install: false
          browser: chrome
          record: false
          config-file: cypress.config.ts
          working-directory: ./services/frontend

      - name: Stop and remove frontend container
        run: |
          docker stop frontend
          docker rm frontend

      - name: Stop and remove backend container
        run: |
          docker stop backend
          docker rm backend
      
      - name: Stop and remove backend Postgres containers
        run: |
          docker stop workflow-postgres-backend
          docker stop workflow-postgres-ingestion
          docker rm workflow-postgres-backend
          docker rm workflow-postgres-ingestion

Command ran :
act --rm --container-options "--group-add 0" -P ubuntu-22.04=catthehacker/ubuntu:act-22.04 workflow_dispatch

<!-- gh-comment-id:2709937426 --> @EDM115 commented on GitHub (Mar 10, 2025): <details><summary>Workflow</summary> ```yml name: Run the workflows suite locally on: workflow_dispatch env: DATABASE_URL: postgresql://postgres:test@localhost:5433/backend-test?schema=public INGESTION_DB_URL: postgresql://postgres:test@localhost:5434/ingestion-test?schema=public jobs: lint: runs-on: ubuntu-22.04 strategy: matrix: node-version: [22] steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Install dependencies run: pnpm install - name: Run linting run: pnpm lint tests: needs: lint runs-on: ubuntu-22.04 strategy: matrix: node-version: [22] services: postgres: image: postgres:16-alpine env: POSTGRES_PASSWORD: test POSTGRES_USER: postgres options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5 ports: - 5433:5432 postgres-ingestion: image: postgres:16-alpine env: POSTGRES_PASSWORD: test POSTGRES_USER: postgres options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5 ports: - 5434:5432 steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: "pnpm" - name: Install dependencies run: pnpm install - name: Setup the database working-directory: services/backend run: pnpm migratetest - name: Setup the ingestion database working-directory: packages/db-migrations run: INGESTION_DB_URL=${INGESTION_DB_URL} pnpm ingestion:migrate:test - name: Run tests env: NODE_OPTIONS: --max_old_space_size=4096 run: pnpm test docker: needs: [lint, tests] runs-on: ubuntu-22.04 env: IMAGE_TAG: "latest" strategy: fail-fast: false matrix: node-version: [22] steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Create custom network run: docker network create test || true - name: Start backend Postgres container run: | docker run -d \ --network test \ --name workflow-postgres-backend \ -e POSTGRES_PASSWORD=test \ -e POSTGRES_USER=postgres \ -p 5433:5432 \ postgres:16-alpine - name: Start ingestion Postgres container run: | docker run -d \ --network test \ --name workflow-postgres-ingestion \ -e POSTGRES_PASSWORD=test \ -e POSTGRES_USER=postgres \ -p 5434:5432 \ postgres:16-alpine - name: Build the data-ingestion Docker image uses: docker/build-push-action@v6 with: context: . file: services/data-ingestion/Dockerfile tags: workflow/data-ingestion:${{ env.IMAGE_TAG }} load: true - name: Build the backend Docker image uses: docker/build-push-action@v6 with: context: . file: services/backend/Dockerfile tags: workflow/backend:${{ env.IMAGE_TAG }} load: true - name: Build the frontend Docker image uses: docker/build-push-action@v6 with: context: . file: services/frontend/Dockerfile tags: workflow/frontend:${{ env.IMAGE_TAG }} load: true - name: Run application container backend working-directory: services/backend run: | docker run -d -p 3001:3001 --name backend --network test --add-host=host.docker.internal:host-gateway --env-file ./.env.e2e workflow/backend:${{ env.IMAGE_TAG }} - name: Run application container frontend working-directory: services/frontend run: | docker run -d -p 3000:3000 --name frontend --network test --env-file ./.env.e2e workflow/frontend:${{ env.IMAGE_TAG }} - name: Setup pnpm uses: pnpm/action-setup@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - name: Install dependencies run: | pnpm i --frozen-lockfile - name: Setup ingestion database working-directory: packages/db-migrations run: pnpm ingestion:migrate:dev - name: Seed database working-directory: services/backend run: | pnpm migratedev pnpm prisma:seed-dev base pnpm prisma:seed-dev demo - name: check backend - postgres connection run: curl http://localhost:3001/bdd-status - name: check backend - ingestion-db connection run: curl http://localhost:3001/db-ingestion-status # Commented to trigger a failure # - name: Install required Cypress dependencies # run: | # sudo apt-get update # sudo apt-get install -y libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb - name: Run Cypress Tests - Chrome uses: cypress-io/github-action@v6 with: install: false browser: chrome record: false config-file: cypress.config.ts working-directory: ./services/frontend - name: Stop and remove frontend container run: | docker stop frontend docker rm frontend - name: Stop and remove backend container run: | docker stop backend docker rm backend - name: Stop and remove backend Postgres containers run: | docker stop workflow-postgres-backend docker stop workflow-postgres-ingestion docker rm workflow-postgres-backend docker rm workflow-postgres-ingestion ``` </details> Command ran : `act --rm --container-options "--group-add 0" -P ubuntu-22.04=catthehacker/ubuntu:act-22.04 workflow_dispatch`
Author
Owner

@EDM115 commented on GitHub (Mar 10, 2025):

added details : any Docker container that has been ran (either through the services tag or manually as a command) will stay up and running after a job failure

<!-- gh-comment-id:2710510738 --> @EDM115 commented on GitHub (Mar 10, 2025): added details : any Docker container that has been ran (either through the services tag or manually as a command) will stay up and running after a job failure
Author
Owner

@EDM115 commented on GitHub (Mar 12, 2025):

edit : it seemed like a skill issue on my end

<!-- gh-comment-id:2717355115 --> @EDM115 commented on GitHub (Mar 12, 2025): edit : it seemed like a skill issue on my end
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/act#1214
No description provided.