MusicBrainz docker-compose build fails

Tags: #<Tag:0x00007f4195df0f60> #<Tag:0x00007f4195df0e98>

Hello all,
I’m new to MusicBrainz and docker. I wanted to set up a local development server following the steps here: GitHub - metabrainz/musicbrainz-docker: musicbrainz slave server with search and replication

  • I’m using MacOS

After cloning the repo, I am unable to start the service.
This is the error that I keep getting on docker desktop app:

Cannot start Docker Compose application. Reason: Error invoking remote method 'compose-action': Error: Command failed: docker-compose --file "docker-compose.yml" --project-name "musicbrainz-docker" --project-directory "/Users/premanshuyadav/musicbrainz-docker" up -d failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/bash -o pipefail -c cp docker/yarn_pubkey.txt /tmp && cd /tmp && apt-key add yarn_pubkey.txt && refreshed_keys=''; for pgp_server in $(tr ' ' '\n' <<<"$PGP_SERVERS"); do for attempt in {1..3}; do apt-key adv --keyserver "$pgp_server" --refresh-keys Yarn --textmode 2>&1 && { refreshed_keys='yes'; break; } || echo "Temporary failure: apk-key/gpg returned error code '$?' on attempt #$attempt to reach '$pgp_server'."; done; if [[ $refreshed_keys == yes ]]; then break; fi; done; if [[ $refreshed_keys != yes ]]; then echo >&2 'Fatal error: Failed all attempts to refresh PGP keys.'; echo >&2 'Try passing a list of PGP servers that work for you as build argument:'; echo >&2 ''; echo >&2 ' docker-compose build --build-arg PGP_SERVERS="LIST" musicbrainz'; echo >&2 ''; echo >&2 "Current LIST is \"$PGP_SERVERS\""; EX_TEMPFAIL=75; exit $EX_TEMPFAIL; fi; unset attempt pgp_server refreshed_keys; echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && apt-get update -o Dir::Etc::sourcelist="sources.list.d/yarn.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" && curl -sSLO --retry 5 https://deb.nodesource.com/node_16.x/pool/main/n/nodejs/nodejs_${NODE_VERSION}-deb-1nodesource1_amd64.deb && dpkg -i nodejs_${NODE_VERSION}-deb-1nodesource1_amd64.deb && apt-get purge -qy cmdtest && apt-get install --no-install-recommends -qy yarn && rm /tmp/* && rm -rf /var/lib/apt/lists/*]: exit code: 75

And this on CLI:

[musicbrainz-docker_musicbrainz  6/11] RUN cp docker/yarn_pubkey.txt /tmp &&     cd /tmp &&     apt-key add yarn_pubkey.txt &&         refreshed_keys='';     for pgp_server in $(tr ' ' '\n' <<<"ha.pool.sks-keyservers.net ipv4.pool.sks-keyservers.net p80.pool.sks-keyservers.net:80"); do         for attempt in {1..3}; do             apt-key adv --keyserver "$pgp_server" --refresh-keys Yarn --textmode 2>&1 &&             { refreshed_keys='yes'; break; } ||             echo "Temporary failure: apk-key/gpg returned error code '$?' on attempt #$attempt to reach '$pgp_server'.";         done;         if [[ $refreshed_keys == yes ]]; then break; fi;     done;     if [[ $refreshed_keys != yes ]]; then         echo >&2 'Fatal error: Failed all attempts to refresh PGP keys.';         echo >&2 'Try passing a list of PGP servers that work for you as build argument:';         echo >&2 '';         echo >&2 '    docker-compose build --build-arg PGP_SERVERS="LIST" musicbrainz';         echo >&2 '';         echo >&2 "Current LIST is "ha.pool.sks-keyservers.net ipv4.pool.sks-keyservers.net p80.pool.sks-keyservers.net:80"";         EX_TEMPFAIL=75;         exit $EX_TEMPFAIL;     fi;     unset attempt pgp_server refreshed_keys;         echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list &&     apt-get update -o Dir::Etc::sourcelist="sources.list.d/yarn.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0" &&     curl -sSLO --retry 5 https://deb.nodesource.com/node_16.x/pool/main/n/nodejs/nodejs_16.1.0-deb-1nodesource1_amd64.deb &&     dpkg -i nodejs_16.1.0-deb-1nodesource1_amd64.deb &&     apt-get purge -qy cmdtest &&     apt-get install --no-install-recommends -qy         yarn &&     rm /tmp/* &&     rm -rf /var/lib/apt/lists/*:

From what I see, it tells me to build pass PGP server list with my docker-compose build command.
Could anyone help me figure out what the problem is, please?

1 Like

changing this line seems to work

i set it to
ARG PGP_SERVERS="hkps://ipv4.pool.sks-keyservers.net keyserver.ubuntu.com"

no idea if the ubuntu keyserver is the one that worked, or if sks-keyservers was just being finicky

2 Likes

I just tried that and it works! Thanks a lot!

DNS for SKS keyservers have been taken down permanently. It should be replaced by some other servers. Default list of servers has been changed in last week’s update of musicbrainz-docker.