Skip to content

Commit 6549b43

Browse files
authored
[docker] fix docker release image (#2136)
## Summary This PR addresses the issue of our previous approach to only publish the latest version of devbox with `:latest` tag in dockerhub. It achieves 2 things: 1. fixes the previously broken github action to release a docker image after every tag creation. 2. updates the dockerfile so that devbox binary doesn't automatically upgrade to latest version upon first use. This allows docker pulls have fixed versions. ## How was it tested? Already tested on releasing 0.10.7 version to dockerhub as test. - `docker pull jetpackio/devbox:0.10.7` - `docker run jetpackio/devbox:0.10.7` - confirm output shows devbox version 0.10.7 and doesn't upgrade to latest version. - same for devbox-root-user
1 parent 6aebe96 commit 6549b43

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

.github/workflows/docker-image-release.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
tag:
1010
description: 'tag name'
1111
required: true
12-
default: 'undefined'
12+
default: ''
1313
type: string
1414

1515
jobs:
@@ -18,8 +18,6 @@ jobs:
1818
steps:
1919
- name: Check out the repo
2020
uses: actions/checkout@v4
21-
with:
22-
ref: ${{ inputs.tag || github.ref }}
2321
- name: Set up QEMU
2422
uses: docker/setup-qemu-action@v2
2523
- name: Docker meta
@@ -29,19 +27,19 @@ jobs:
2927
images: |
3028
jetpackio/devbox
3129
tags: |
32-
type=semver,pattern={{version}}
30+
type=raw,value=${{ inputs.tag || github.ref_name }}
3331
flavor: |
34-
latest=${{ inputs.tag && true || false }}
32+
latest=false
3533
- name: Docker meta root
3634
id: metaroot
3735
uses: docker/metadata-action@v5
3836
with:
3937
images: |
4038
jetpackio/devbox-root-user
4139
tags: |
42-
type=semver,pattern={{version}}
40+
type=raw,value=${{ inputs.tag || github.ref_name }}
4341
flavor: |
44-
latest=${{ inputs.tag && true || false }}
42+
latest=false
4543
- name: Set up Docker Buildx
4644
uses: docker/setup-buildx-action@v2
4745
- name: Login to Docker Hub
@@ -55,7 +53,7 @@ jobs:
5553
context: ./internal/devbox/generate/tmpl/
5654
file: ./internal/devbox/generate/tmpl/DevboxImageDockerfile
5755
build-args: |
58-
DEVBOX_USE_VERSION=${{ inputs.tag }}
56+
DEVBOX_USE_VERSION=${{ inputs.tag || github.ref_name }}
5957
push: true
6058
platforms: linux/amd64,linux/arm64
6159
tags: ${{ steps.meta.outputs.tags }}
@@ -65,7 +63,7 @@ jobs:
6563
context: ./internal/devbox/generate/tmpl/
6664
file: ./internal/devbox/generate/tmpl/DevboxImageDockerfileRootUser
6765
build-args: |
68-
DEVBOX_USE_VERSION=${{ inputs.tag }}
66+
DEVBOX_USE_VERSION=${{ inputs.tag || github.ref_name }}
6967
push: true
7068
platforms: linux/amd64,linux/arm64
7169
tags: ${{ steps.metaroot.outputs.tags }}

internal/devbox/generate/tmpl/DevboxImageDockerfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,7 @@ ENV DEVBOX_USE_VERSION=$DEVBOX_USE_VERSION
2525
RUN wget --quiet --output-document=/dev/stdout https://get.jetify.com/devbox | bash -s -- -f
2626
RUN chown -R "${DEVBOX_USER}:${DEVBOX_USER}" /usr/local/bin/devbox
2727

28-
CMD ["devbox", "version"]
28+
# run a devbox command to make launcher download devbox binary
29+
RUN devbox version
30+
31+
CMD ["devbox", "version", "-v"]

internal/devbox/generate/tmpl/DevboxImageDockerfileRootUser

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,7 @@ ENV PATH="/root/.nix-profile/bin:$PATH"
1717
# Step 3: Installing devbox
1818
ENV DEVBOX_USE_VERSION=$DEVBOX_USE_VERSION
1919
RUN wget --quiet --output-document=/dev/stdout https://get.jetify.com/devbox | bash -s -- -f
20+
# run a devbox command to make launcher download devbox binary
21+
RUN devbox version
2022

21-
CMD ["devbox", "version"]
23+
CMD ["devbox", "version", "-v"]

0 commit comments

Comments
 (0)