Skip to content

Publish multi-arch images automatically with docker/github-builder#167

Open
gy-mate wants to merge 4 commits intowiktorn:masterfrom
gy-mate:docker-publish
Open

Publish multi-arch images automatically with docker/github-builder#167
gy-mate wants to merge 4 commits intowiktorn:masterfrom
gy-mate:docker-publish

Conversation

@gy-mate
Copy link
Copy Markdown

@gy-mate gy-mate commented Apr 11, 2026

I'd like to suggest switching from manual Docker image building and Docker Hub pushing to an automated workflow because it can also easily provide ARM64 builds on each release. (This would resolve #87.)

@wiktorn I don't know if it would fit into your workflow but the new process would require all new releases being created from now on at https://github.com/wiktorn/overpass-api/releases/new. Let me know if you like the idea of automated publishing but would prefer another trigger type!

The workflow would also use the DOCKERHUB_TOKEN repository secret and DOCKERHUB_USERNAME repository variable that have to be set manually first.

Testing would also be needed to check if the Docker Hub push succeeds this way.

Detailed changes:

  • Rename Dockerfile.template to Dockerfile to make it usable for the GitHub Action
  • ARG OVERPASS_VERSION instead of {version} Python field formatting
  • Remove curly bracket Python format field escaping from ENV declarations
  • Create docker-publish.yml which uses the new docker/github-builder GitHub Action that makes configuring builds fairly simple

Switch from manual Docker image building and Docker Hub pushing to an automated workflow that also provides ARM64 builds on each release.

It requires releases being created from now on at https://github.com/wiktorn/overpass-api/releases/new.

It also uses the DOCKERHUB_TOKEN repository secret and DOCKERHUB_USERNAME repository variable. Both should be set manually first.

Detailed changes:

- Rename Dockerfile.template to Dockerfile to make it usable for the GitHub Action
- ARG OVERPASS_VERSION instead of {version} Python field formatting
- Remove curly bracket Python format field escaping from ENV declarations
- Create docker-publish.yml which uses the new docker/github-builder GitHub action that makes configuring builds fairly simple
@gy-mate gy-mate changed the title Publish multi-arch images automatically with docker/github-builder Publish multi-arch images automatically with docker/github-builder Apr 11, 2026
Copy link
Copy Markdown
Owner

@wiktorn wiktorn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for this

Comment thread .github/workflows/docker-publish.yml
Comment thread .github/workflows/docker-publish.yml
Comment thread update.py Outdated
data = response.read().decode(response.headers.get_content_charset())
parser.feed(data)
with open("Dockerfile.template") as f:
with open("Dockerfile") as f:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the changes in the Dockerfile, this whole script can be refactor just to return versions to build, and then build.sh can use those, to pass as an argument to docker command.

It would be nice to have a Github Workflow, that does similar thing as build.sh - building all versions, one by one, so they can reuse caches created by builds for other versions.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With the changes in the Dockerfile, this whole script can be refactor just to return versions to build, and then build.sh can use those, to pass as an argument to docker command.

I've implemented this in 3c699a3. Did you mean it like this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to have a Github Workflow, that does similar thing as build.sh - building all versions, one by one, so they can reuse caches created by builds for other versions.

As this would be a bit more complicated, would you mind if I leave this for later (for another PR), if someone wants to implement it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Overpass-API for arm64

2 participants