Skip to content

Commit bc41c90

Browse files
authored
Golang Dockerfile (#145)
* feat(docker): First golang version. * feat(dependencies): Tracks Gitpod full workspace docker image. * feat(dependencies): Added golang and an action. * chore(dependencies): Pinned version of workspace-full. * chore(dependencies): Added golang. * feat(dependencies): Added debian. * fix(dependencies): POSIX. * fix(dependencies): POSIX.
1 parent 3959b01 commit bc41c90

File tree

6 files changed

+139
-1
lines changed

6 files changed

+139
-1
lines changed

.github/dependabot.yml

+5
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ updates:
4545
open-pull-requests-limit: 10
4646
- package-ecosystem: docker
4747
directory: "./dockerfiles/android"
48+
schedule:
49+
interval: weekly
50+
open-pull-requests-limit: 10
51+
- package-ecosystem: docker
52+
directory: "./dockerfiles/golang"
4853
schedule:
4954
interval: weekly
5055
open-pull-requests-limit: 10

.gitpod/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# This Dockerfile is used to create a Gitpod workspace with GitHub CLI installed.
22

33
# We start from the Gitpod full workspace image which includes a broad range of development tools.
4-
FROM gitpod/workspace-full
4+
FROM gitpod/workspace-full:2024-03-05-10-13-49
55

66
# The RUN command executes a series of commands in the new layer of the image and commits the results.
77
# The following commands are executed:

dockerfiles/golang/Dockerfile

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
FROM jenkins/ssh-agent:5.25.0 as ssh-agent
2+
3+
# ca-certificates because curl will need it later on for the maven installation
4+
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && apt-get clean && \
5+
rm -rf /var/lib/apt/lists/*
6+
7+
# Now time to install maven
8+
ARG GOLANG_VERSION=1.21.8
9+
ARG TARGETARCH
10+
ENV ARCHITECTURE=$TARGETARCH
11+
12+
# Set SHELL flags for RUN commands to allow -e and pipefail
13+
# Rationale:https://github.com/hadolint/hadolint/wiki/DL4006
14+
SHELL ["/bin/bash", "-eo", "pipefail", "-c"]
15+
16+
RUN curl -sS -L -O --output-dir /tmp/ --create-dirs "https://go.dev/dl/go${GOLANG_VERSION}.linux-${ARCHITECTURE}.tar.gz" && \
17+
rm -rf /usr/local/go && tar -C /usr/local -xzf /tmp/go"$GOLANG_VERSION".linux-${ARCHITECTURE}.tar.gz && \
18+
rm -rf /tmp/go"$GOLANG_VERSION".linux-${ARCHITECTURE}.tar.gz
19+
20+
ENV PATH=$PATH:/usr/local/go/bin
21+
22+
RUN echo "PATH=${PATH}" >> /etc/environment && chown -R jenkins:jenkins "${JENKINS_AGENT_HOME}" && \
23+
go version

updatecli/updatecli.d/debian.yaml

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: 'deps(dockerfile): bump image "debian" digest'
2+
3+
scms:
4+
default:
5+
kind: github
6+
spec:
7+
user: "{{ .github.user }}"
8+
email: "{{ .github.email }}"
9+
owner: "{{ .github.owner }}"
10+
repository: "{{ .github.repository }}"
11+
token: "{{ requiredEnv .github.token }}"
12+
username: "{{ .github.username }}"
13+
branch: "{{ .github.branch }}"
14+
15+
sources:
16+
bookwormLatestVersion:
17+
kind: dockerimage
18+
name: "Get the latest Debian Bookworm Linux version"
19+
spec:
20+
image: "debian"
21+
tagfilter: "bookworm-*"
22+
versionfilter:
23+
kind: regex
24+
pattern: >-
25+
bookworm-\d+$
26+
27+
targets:
28+
debian:
29+
name: 'deps(dockerfile): bump image "debian"'
30+
kind: dockerfile
31+
spec:
32+
file: dockerfiles/sidekick/Dockerfile
33+
instruction:
34+
keyword: FROM
35+
matcher: debian
36+
sourceid: bookwormLatestVersion
37+
38+
actions:
39+
default:
40+
kind: github/pullrequest
41+
scmid: default
42+
title: Bump Debian Bookworm Linux version to {{ source "bookwormLatestVersion" }}
43+
spec:
44+
labels:
45+
- dependencies
46+
- debian-bookworm

updatecli/updatecli.d/gitpod.yaml

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: 'deps(dockerfile): bump image "gitpod/workspace-full" digest'
3+
4+
scms:
5+
default:
6+
kind: github
7+
spec:
8+
user: "{{ .github.user }}"
9+
email: "{{ .github.email }}"
10+
owner: "{{ .github.owner }}"
11+
repository: "{{ .github.repository }}"
12+
token: "{{ requiredEnv .github.token }}"
13+
username: "{{ .github.username }}"
14+
branch: "{{ .github.branch }}"
15+
16+
sources:
17+
gitpod/workspace-full:
18+
name: get latest image "gitpod/workspace-full"
19+
kind: dockerimage
20+
spec:
21+
image: gitpod/workspace-full
22+
tagfilter: '\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2}'
23+
24+
targets:
25+
gitpod/workspace-full:
26+
name: 'deps(dockerfile): bump image "gitpod/workspace-full"'
27+
kind: dockerfile
28+
spec:
29+
file: .gitpod/Dockerfile
30+
instruction:
31+
keyword: FROM
32+
matcher: gitpod/workspace-full
33+
sourceid: gitpod/workspace-full
34+
35+
actions:
36+
default:
37+
kind: github/pullrequest
38+
scmid: default
39+
title: Bump Gitpod version to {{ source "gitpod/workspace-full" }}
40+
spec:
41+
labels:
42+
- dependencies
43+
- debian-bookworm

updatecli/updatecli.d/ssh-agent.yaml

+21
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ sources:
2323
versionfilter:
2424
kind: semver
2525
pattern: '>=5.20.0'
26+
2627
targets:
2728
jenkins/python-agent:
2829
name: '[jenkins/ssh-agent] Bump Docker image tag in "dockerfiles/python/Dockerfile"'
@@ -74,6 +75,16 @@ targets:
7475
matcher: jenkins/ssh-agent
7576
sourceid: jenkins/ssh-agent
7677
scmid: default
78+
jenkins/golang-agent:
79+
name: '[jenkins/ssh-agent] Bump Docker image tag in "dockerfiles/golang/Dockerfile"'
80+
kind: dockerfile
81+
spec:
82+
file: dockerfiles/golang/Dockerfile
83+
instruction:
84+
keyword: FROM
85+
matcher: jenkins/ssh-agent
86+
sourceid: jenkins/ssh-agent
87+
scmid: default
7788
default-agent:
7889
name: '[jenkins/ssh-agent] Bump Docker image tag in "docker-compose.yaml"'
7990
kind: yaml
@@ -94,3 +105,13 @@ targets:
94105
key: $.services.default_agent.image
95106
sourceid: jenkins/ssh-agent
96107
scmid: default
108+
109+
actions:
110+
default:
111+
kind: github/pullrequest
112+
scmid: default
113+
title: Bump ssh-agent version to {{ source "jenkins/ssh-agent" }}
114+
spec:
115+
labels:
116+
- dependencies
117+
- debian-bookworm

0 commit comments

Comments
 (0)