devcontainers / features

A collection of Dev Container Features managed by Dev Container spec maintainers. See https://github.com/devcontainers/feature-starter to publish your own
https://containers.dev/features
MIT License
813 stars 314 forks source link

docker-outside-of-docker failed to install -> rep ubuntu/20.04/prod focal InRelease is not signed #1017

Open seantleonard opened 1 week ago

seantleonard commented 1 week ago

Trying to use the images:

The deployment errors out seemingly due to docker-outside-of-docker. Not sure if this is the cause or just a symptom of the failure.

5.546 W: GPG error: https://packages.microsoft.com/ubuntu/20.04/prod focal InRel ease: The following signatures couldn't be verified because the public key is no t available: NO_PUBKEY EB3E94ADBE1229CF 5.546 E: The repository 'https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease' is not signed. 5.547 ERROR: Feature "Docker (docker-outside-of-docker)" (ghcr.io/devcontainers/ features/docker-outside-of-docker) failed to install! Look at the documentation at https://github.com/devcontainers/features/tree/main/src/docker-outside-of-doc ker for help troubleshooting this error.

It looks like the docker outside of docker feature install.sh only imports the Microsoft signing keys if Moby is used: https://github.com/devcontainers/features/blob/414d3450434b9072f01afe80cab226c60088224a/src/docker-outside-of-docker/install.sh#L215-L229

I do notice the Sample project I'm using doesn't provide a Moby property, which per docker outside of docker docs, moby should be true by default. Not sure why the key setup isn't working. https://github.com/Azure-Samples/azure-sql-library-app-blazor/blob/0a1ba8c97744d887f209d95c7f932ddf0eb8b04c/.devcontainer/devcontainer.json#L59-L61

        "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
            "version": "latest"
        }
seantleonard commented 1 week ago

Solution was to add config to my dockerfile to import microsoft signing keys as suggested by Microsoft documentation. not sure why the key import in docker-outside-docker install.sh doesn't fulfill whatever is happening below:

# Import Microsoft Signing Keys
# https://learn.microsoft.com/dotnet/core/install/linux-ubuntu#unable-to-locate--some-packages-could-not-be-installed
RUN sudo apt-get install -y gpg wget \
    && wget https://packages.microsoft.com/keys/microsoft.asc \
    && cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg \
    && sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/ \
    && sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg