chore: remove deprecated go-ipfs Docker image publishing (#11081)
stop publishing to ipfs/go-ipfs entirely - the deprecation stub introduced in v0.39 is no longer needed. only ipfs/kubo is published. - remove legacy-name job from docker-image.yml workflow - remove .github/legacy/ (Dockerfile.goipfs-stub, goipfs_stub.sh) - update bin scripts to use ipfs/kubo as default
Marcin Rataj committed
Nov 27, 2025 at 17:05 UTC
b5078b005d7765cc50bb9bd40c974ad34e4b89e3
5 files changed
+4
-99
.github/legacy/Dockerfile.goipfs-stub
deleted
-26
@@ -1,26 +0,0 @@
1
-# syntax=docker/dockerfile:1
2
-# Stub Dockerfile for the deprecated 'ipfs/go-ipfs' image name.
3
-# This image redirects users to the new 'ipfs/kubo' name.
4
-FROM busybox:stable-glibc
5
-
6
-# Copy stub entrypoint that displays deprecation message
7
-COPY .github/legacy/goipfs_stub.sh /usr/local/bin/ipfs
8
-
9
-# Make it executable
10
-RUN chmod +x /usr/local/bin/ipfs
11
-
12
-# Use the same ports as the real image for compatibility
13
-EXPOSE 4001 4001/udp 5001 8080 8081
14
-
15
-# Create ipfs user for consistency
16
-ENV IPFS_PATH=/data/ipfs
17
-RUN mkdir -p $IPFS_PATH \
18
- && adduser -D -h $IPFS_PATH -u 1000 -G users ipfs \
19
- && chown ipfs:users $IPFS_PATH
20
-
21
-# Run as ipfs user
22
-USER ipfs
23
-
24
-# The stub script will run and exit with an error message
25
-ENTRYPOINT ["/usr/local/bin/ipfs"]
26
-CMD ["daemon"]
.github/legacy/goipfs_stub.sh
deleted
-20
@@ -1,20 +0,0 @@
1
-#!/bin/sh
2
-# Stub script for the deprecated 'ipfs/go-ipfs' Docker image.
3
-# This informs users to switch to 'ipfs/kubo'.
4
-
5
-cat >&2 <<'EOF'
6
-ERROR: The name 'go-ipfs' is no longer used.
7
-
8
-Please update your Docker scripts to use 'ipfs/kubo' instead of 'ipfs/go-ipfs'.
9
-
10
-For example:
11
- docker pull ipfs/kubo:release
12
-
13
-More information:
14
- - https://github.com/ipfs/kubo#docker
15
- - https://hub.docker.com/r/ipfs/kubo
16
- - https://docs.ipfs.tech/install/run-ipfs-inside-docker/
17
-
18
-EOF
19
-
20
-exit 1
.github/workflows/docker-image.yml
-49
@@ -141,52 +141,3 @@ jobs:
141
cache-to: |
142
type=gha,mode=max
143
type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max
144
-
145
- # Build and push stub image to the legacy ipfs/go-ipfs name
146
- # This redirects users to use ipfs/kubo instead
147
- legacy-name:
148
- needs: docker-hub
149
- if: github.repository == 'ipfs/kubo' || github.event_name == 'workflow_dispatch'
150
- name: Push stub to legacy ipfs/go-ipfs name
151
- runs-on: ubuntu-latest
152
- timeout-minutes: 5
153
- env:
154
- LEGACY_IMAGE_NAME: ipfs/go-ipfs
155
- steps:
156
- - name: Check out the repo
157
- uses: actions/checkout@v6
158
-
159
- - name: Set up QEMU
160
- uses: docker/setup-qemu-action@v3
161
-
162
- - name: Set up Docker Buildx
163
- uses: docker/setup-buildx-action@v3
164
-
165
- - name: Log in to Docker Hub
166
- uses: docker/login-action@v3
167
- with:
168
- username: ${{ vars.DOCKER_USERNAME }}
169
- password: ${{ secrets.DOCKER_PASSWORD }}
170
-
171
- - name: Convert tags to legacy image name
172
- id: legacy_tags
173
- run: |
174
- TAGS="${{ github.event.inputs.tags || needs.docker-hub.outputs.tags }}"
175
- if ! echo "$TAGS" | grep -q "kubo"; then
176
- echo "ERROR: Tags must contain kubo image name"
177
- exit 1
178
- fi
179
- echo "value<<EOF" >> $GITHUB_OUTPUT
180
- echo "$TAGS" | sed "s|ipfs/kubo|$LEGACY_IMAGE_NAME|g" >> $GITHUB_OUTPUT
181
- echo "EOF" >> $GITHUB_OUTPUT
182
- shell: bash
183
-
184
- - if: github.event_name != 'workflow_dispatch' || github.event.inputs.push == 'true'
185
- name: Build and push legacy stub image
186
- uses: docker/build-push-action@v6
187
- with:
188
- platforms: linux/amd64,linux/arm/v7,linux/arm64/v8
189
- context: .
190
- push: true
191
- file: ./.github/legacy/Dockerfile.goipfs-stub
192
- tags: ${{ steps.legacy_tags.outputs.value }}
bin/get-docker-tags.sh
+1
-1
@@ -41,7 +41,7 @@ if [[ $GIT_TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+-rc ]]; then
41
elif [[ $GIT_TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
42
echoImageName "$GIT_TAG"
43
echoImageName "latest"
44
- echoImageName "release" # see: https://github.com/ipfs/go-ipfs/issues/3999#issuecomment-742228981
44
+ echoImageName "release" # see: https://github.com/ipfs/kubo/issues/3999#issuecomment-742228981
45
46
elif [[ $GIT_BRANCH =~ ^bifrost-.* ]]; then
47
# sanitize the branch name since docker tags have stricter char limits than git branch names
bin/push-docker-tags.sh
+3
-3
@@ -7,7 +7,7 @@
7
# Run from ci to tag images based on the current branch or tag name.
8
# A bit like dockerhub autobuild config, but somewhere we can version control it.
9
#
10
-# The `docker-build` job builds the current commit in docker and tags it as ipfs/go-ipfs:wip
10
+# The `docker-build` job builds the current commit in docker and tags it as ipfs/kubo:wip
11
#
12
# Then the `docker-publish` job runs this script to decide what tag, if any,
13
# to publish to dockerhub.
@@ -42,7 +42,7 @@ GIT_TAG=${4:-$(git describe --tags --exact-match || echo "")}
42
DRY_RUN=${5:-false}
43
44
WIP_IMAGE_TAG=${WIP_IMAGE_TAG:-wip}
45
-IMAGE_NAME=${IMAGE_NAME:-ipfs/go-ipfs}
45
+IMAGE_NAME=${IMAGE_NAME:-ipfs/kubo}
46
47
pushTag () {
48
local IMAGE_TAG=$1
@@ -63,7 +63,7 @@ if [[ $GIT_TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+-rc ]]; then
63
elif [[ $GIT_TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
64
pushTag "$GIT_TAG"
65
pushTag "latest"
66
- pushTag "release" # see: https://github.com/ipfs/go-ipfs/issues/3999#issuecomment-742228981
66
+ pushTag "release" # see: https://github.com/ipfs/kubo/issues/3999#issuecomment-742228981
67
68
elif [[ $GIT_BRANCH =~ ^bifrost-.* ]]; then
69
# sanitize the branch name since docker tags have stricter char limits than git branch names