Skip to content

Fail to set rootless mode when docker container action is used #404

@thiagocrepaldi

Description

@thiagocrepaldi

Many Github Actions use Docker container action feature to run their actions within a container.

One of such actions is https://github.com/ammaraskar/sphinx-action, which builds Sphinx documentation within a container
Under the hood, it has a action.yml file that calls docker like this:

runs:
  using: 'docker'
  image: 'Dockerfile'

As a result, github actions calls docker in a way similar to docker run -v "/var/run/docker.sock":"/var/run/docker.sock" ..., that is, it maps /var/run/docker.sock into the container in a hard-coded fashion. actions/runner#1754 is open for 2 years to fix that upstream, but no action was ever taken. This is where I found your action and really hoped it would save my day :)

Here is my repro

    - name: Print docker information
      run: |
        docker info --format "{{ .ClientInfo.Context }}"
    - name: Use Docker in rootless mode.
      uses: ScribeMD/rootless-docker@0.1.7
    - name: Print docker information
      run: |
        docker info --format "{{ .ClientInfo.Context }}"
    - name: Build HTML using Sphinx
      uses: ammaraskar/sphinx-action@master

The output shows that I was in rootless mode already and after your action I was still rootless. This is expected as this user really uses rootless without the actions kicking in

image
As a result, the action fail with Unable to find image 'd3590b:bfe2895916b74aa18c9cb453deb270bb' locally because the rootfull docker is used instead of the rootless, in which context the image doesnt exist.

It seems the -v mapping take precedence over everything, so your action doesnt work. Any way you could find a workaround and make your action even more powerful?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions