Skip to content

uses: docker://... fails with "No such container" #200

@hasufell

Description

@hasufell

Pipeline: https://github.com/haskell/ghcup-hs/actions/runs/12536865845/job/34960342646#step:9:2

2024-12-29T16:07:48.6925873Z   �  docker pull image=hasufell/arm64v8-alpine-haskell:3.20 platform= username= forcePull=true
2024-12-29T16:07:49.7373772Z   �  docker create image=hasufell/arm64v8-alpine-haskell:3.20 platform= entrypoint=[] cmd=["sh" "-c" ".github/scripts/build.sh '--ghc-options=-split-sections' '--enable-executable-static'"] network="container:act-Build-and-release-3e41c296-c773-410e-ab2d-95ed980861c2-22900ec42b424889eaad00525fdc52f10dcc32a3aad9529730bac900ba7db6bf"
2024-12-29T16:07:49.7744554Z   �  docker run image=hasufell/arm64v8-alpine-haskell:3.20 platform= entrypoint=[] cmd=["sh" "-c" ".github/scripts/build.sh '--ghc-options=-split-sections' '--enable-executable-static'"] network="container:act-Build-and-release-3e41c296-c773-410e-ab2d-95ed980861c2-22900ec42b424889eaad00525fdc52f10dcc32a3aad9529730bac900ba7db6bf"
2024-12-29T16:07:49.7939532Z ##[error]  �  Failure - Main Run build (aarch64 linux)
2024-12-29T16:07:49.7957729Z ##[error]failed to start container: Error response from daemon: No such container: act-Build-and-release-3e41c296-c773-410e-ab2d-95ed980861c2-22900ec42b424889eaad00525fdc52f10dcc32a3aad9529730bac900ba7db6bf

Workflow: https://github.com/haskell/ghcup-hs/blob/54e171ff35fc7b467709ed6982bc5cfcae7d8c91/.github/workflows/release.yaml#L134

      - if: matrix.ARCH == 'ARM64'
        uses: docker://hasufell/arm64v8-alpine-haskell:3.20
        name: Run build (aarch64 linux)
        with:
          args: sh -c ".github/scripts/build.sh '--ghc-options=-split-sections' '--enable-executable-static'"
          network: host
        env:
          ARTIFACT: ${{ matrix.ARTIFACT }}
          ARCH: ${{ matrix.ARCH }}
          GHC_VER: ${{ matrix.GHC_VER }}
          DISTRO: ${{ matrix.DISTRO }}
          AWS_SECRET_ACCESS_KEY: ${{ env.AWS_SECRET_ACCESS_KEY }}
          AWS_ACCESS_KEY_ID: ${{ env.AWS_ACCESS_KEY_ID }}
          S3_HOST: ${{ env.S3_HOST }}

This works fine with github runners.

It is not the same as using the container:. .. feature. With the container feature, everything is run inside the container, including actions (like checkout). With the above syntax, only the step itself is run in the container. This is useful if the container does not support node20 (e.g. debian i386).

From what I see the issue might be how it sets up the network here:

network="container:act-Build-and-release-3e41c296-c773-410e-ab2d-95ed980861c2-22900ec42b424889eaad00525fdc52f10dcc32a3aad9529730bac900ba7db6bf"

In workflows with the container syntax, it appears to set network=host (see here). So why it's doing this here?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions