forked from pool/golang-stable-image
Compare commits
101 Commits
| Author | SHA256 | Date | |
|---|---|---|---|
| bd8b4d2fc2 | |||
| aee0eb01e4 | |||
| ec1391cb3f | |||
| cb94a38857 | |||
| 844be6ab96 | |||
| 498ef9f54e | |||
| cd557a3fd4 | |||
| f247762196 | |||
| 35098eeca8 | |||
| c0c3c796c2 | |||
| b9360aeb06 | |||
| a4f191c756 | |||
| d27805097b | |||
| 95b5e79159 | |||
| 49bdbfb4db | |||
| 392ac5db5b | |||
| 828c373d30 | |||
| e8f00cdd10 | |||
| 77fb6319f0 | |||
| b2b2918020 | |||
| e32af5dd20 | |||
| 09a500c5f1 | |||
| 1f4f3e74ca | |||
| 147381305b | |||
| 5917276dd6 | |||
| 284e083697 | |||
| eff655c581 | |||
| cae139a529 | |||
| ec140c0a19 | |||
| d1a63fb0a8 | |||
| c25cae4d16 | |||
| ce34e7650c | |||
| 541f744505 | |||
| a288f20859 | |||
| 6ab0661e67 | |||
| 1cc7d093c4 | |||
| bd63b37662 | |||
| 08e8637f62 | |||
| cf794633c4 | |||
| e38d9ff51e | |||
| 1ddded1aad | |||
| 9bea8ba047 | |||
| 2be0ded262 | |||
| 44b6f80031 | |||
| 2e25975f12 | |||
| 8d4e2c0a8e | |||
| 030218aa40 | |||
| 1e4f8d9303 | |||
| 8331356972 | |||
| 90c6e0dc9a | |||
| adb751775c | |||
| 730276325a | |||
| 27456e37c9 | |||
| 900c767e89 | |||
| b7aa47d19a | |||
| 6cc9de9700 | |||
| 6c85e6c708 | |||
| 583087194b | |||
| 84ff21bb83 | |||
| 81e9f614df | |||
| 95b8acd867 | |||
| d2ce3ae769 | |||
| e386cf6902 | |||
| 5caa0587d4 | |||
| 2d33849008 | |||
| 6e9c618fd3 | |||
| a0962ecd84 | |||
| 09dfa37ae6 | |||
| 2dfc54303f | |||
| 62d84f1401 | |||
| 943c8ce1cf | |||
| 66022396b9 | |||
| 06672b2d2b | |||
| 1a2ad805f3 | |||
| fff5fac5a9 | |||
| f01e06df97 | |||
| 84fe2aa7b7 | |||
| 0a0c0d50d6 | |||
| 2632b5a463 | |||
| d933dec654 | |||
| 87bae1d673 | |||
| 955128eeda | |||
| a13141661f | |||
| 3010f25e66 | |||
| c971af4d10 | |||
| 4a4a2e7d81 | |||
| 4c718cd548 | |||
| 05c8d3e31f | |||
| 925ec07774 | |||
| cba293d65c | |||
| 21d55e3bf5 | |||
| 32d9101e55 | |||
| 50ae2b9fba | |||
| 22d86305c6 | |||
| 7f19491d5a | |||
| cb72225cf3 | |||
| e9af11993b | |||
| 8eba086bf3 | |||
| 3374163564 | |||
| 7441790852 | |||
| 6ac2125daf |
49
Dockerfile
49
Dockerfile
@@ -1,6 +1,6 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@@ -13,46 +13,61 @@
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
# You can contact the BCI team via https://github.com/SUSE/bci/discussions
|
||||
|
||||
#!UseOBSRepositories
|
||||
|
||||
#!BuildTag: opensuse/bci/golang:stable
|
||||
#!BuildTag: opensuse/bci/golang:stable-1.%RELEASE%
|
||||
#!BuildTag: opensuse/bci/golang:1.23
|
||||
#!BuildTag: opensuse/bci/golang:1.23-1.%RELEASE%
|
||||
#!BuildTag: opensuse/bci/golang:%%golang_version%%
|
||||
#!BuildTag: opensuse/bci/golang:stable
|
||||
#!BuildTag: opensuse/bci/golang:%%golang_version%%-1.%RELEASE%
|
||||
#!BuildTag: opensuse/bci/golang:%%golang_version%%
|
||||
#!BuildTag: opensuse/bci/golang:1.25
|
||||
#!BuildTag: opensuse/bci/golang:latest
|
||||
|
||||
FROM opensuse/tumbleweed:latest
|
||||
|
||||
RUN set -euo pipefail; zypper -n in --no-recommends go1.23 go1.23-doc make curl findutils gawk git-core procps util-linux; zypper -n clean; rm -rf /var/log/{lastlog,tallylog,zypper.log,zypp/history,YaST2}
|
||||
RUN set -euo pipefail; \
|
||||
zypper -n install --no-recommends go1.25 go1.25-doc make curl findutils gawk git-core procps util-linux
|
||||
|
||||
# cleanup logs and temporary files
|
||||
RUN set -euo pipefail; zypper -n clean -a; \
|
||||
rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}; \
|
||||
rm -rf {/target,}/run/*; \
|
||||
rm -f {/target,}/etc/{shadow-,group-,passwd-,.pwd.lock}; \
|
||||
rm -f {/target,}/usr/lib/sysimage/rpm/.rpm.lock; \
|
||||
rm -f {/target,}/var/cache/ldconfig/aux-cache; \
|
||||
command -v zypper >/dev/null 2>&1 || rm -f /var/lib/zypp/AutoInstalled
|
||||
|
||||
# set the day of last password change to empty
|
||||
RUN set -euo pipefail; sed -i 's/^\([^:]*:[^:]*:\)[^:]*\(:.*\)$/\1\2/' /etc/shadow
|
||||
|
||||
# Define labels according to https://en.opensuse.org/Building_derived_containers
|
||||
# labelprefix=org.opensuse.bci.golang
|
||||
LABEL org.opencontainers.image.authors="openSUSE (https://www.opensuse.org/)"
|
||||
LABEL org.opencontainers.image.title="openSUSE Tumbleweed BCI Go 1.23 development"
|
||||
LABEL org.opencontainers.image.description="Go 1.23 development container based on the openSUSE Tumbleweed Base Container Image."
|
||||
LABEL org.opencontainers.image.title="openSUSE Tumbleweed BCI Go 1.25 development"
|
||||
LABEL org.opencontainers.image.description="Go 1.25 development container based on the openSUSE Tumbleweed Base Container Image."
|
||||
LABEL org.opencontainers.image.version="%%golang_version%%"
|
||||
LABEL org.opencontainers.image.url="https://www.opensuse.org"
|
||||
LABEL org.opencontainers.image.created="%BUILDTIME%"
|
||||
LABEL org.opencontainers.image.vendor="openSUSE Project"
|
||||
LABEL org.opencontainers.image.source="%SOURCEURL%"
|
||||
LABEL org.opencontainers.image.ref.name="1.23-1.%RELEASE%"
|
||||
LABEL org.opensuse.reference="registry.opensuse.org/opensuse/bci/golang:1.23-1.%RELEASE%"
|
||||
LABEL org.opencontainers.image.ref.name="%%golang_version%%-1.%RELEASE%"
|
||||
LABEL org.opensuse.reference="registry.opensuse.org/opensuse/bci/golang:%%golang_version%%-1.%RELEASE%"
|
||||
LABEL org.openbuildservice.disturl="%DISTURL%"
|
||||
LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime#openSUSE_BCI"
|
||||
LABEL org.opensuse.release-stage="released"
|
||||
# endlabelprefix
|
||||
LABEL io.artifacthub.package.readme-url="https://raw.githubusercontent.com/SUSE/BCI-dockerfile-generator/Tumbleweed/golang-stable-image/README.md"
|
||||
LABEL io.artifacthub.package.readme-url="%SOURCEURL_WITH(README.md)%"
|
||||
ENV GOLANG_VERSION="%%golang_version%%"
|
||||
ENV GOPATH="/go"
|
||||
ENV GOTOOLCHAIN="local"
|
||||
ENV PATH="/go/bin:/usr/local/go/bin:/root/go/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
|
||||
|
||||
# only available on go's tsan_arch architectures
|
||||
#!ArchExclusiveLine: x86_64 aarch64 s390x ppc64le
|
||||
RUN set -euo pipefail; if zypper -n install go1.23-race; then zypper -n clean; fi
|
||||
RUN set -euo pipefail; install -m 755 -d /go/bin /go/src
|
||||
RUN set -euo pipefail; rm -rf /var/log/{lastlog,tallylog,zypper.log,zypp/history,YaST2}
|
||||
RUN set -euo pipefail; if zypper -n install go1.25-race; then zypper -n clean -a; fi
|
||||
WORKDIR /go
|
||||
|
||||
RUN set -euo pipefail; install -m 755 -d /go/bin /go/src
|
||||
RUN set -euo pipefail; rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}; \
|
||||
rm -rf {/target,}/run/*; \
|
||||
rm -f {/target,}/etc/{shadow-,group-,passwd-,.pwd.lock}; \
|
||||
rm -f {/target,}/usr/lib/sysimage/rpm/.rpm.lock; \
|
||||
rm -f {/target,}/var/cache/ldconfig/aux-cache; \
|
||||
command -v zypper >/dev/null 2>&1 || rm -f /var/lib/zypp/AutoInstalled
|
||||
|
||||
28
README.md
28
README.md
@@ -1,4 +1,4 @@
|
||||
# Go 1.23 development container image
|
||||
# Go 1.25 development container image
|
||||
|
||||

|
||||
|
||||
@@ -33,8 +33,8 @@ the following Dockerfile options.
|
||||
### Building from `scratch`
|
||||
|
||||
```Dockerfile
|
||||
# Build the application using the Go 1.23 development container image
|
||||
FROM registry.opensuse.org/opensuse/bci/golang:1.23 as build
|
||||
# Build the application using the Go 1.25 development container image
|
||||
FROM registry.opensuse.org/opensuse/bci/golang:1.25 as build
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@@ -72,24 +72,24 @@ There are situations when you don't want to run an application inside a containe
|
||||
To compile the application, without running it inside a container instance, use the following command:
|
||||
|
||||
```ShellSession
|
||||
$ podman run --rm -v "$PWD":/app:Z -w /app registry.opensuse.org/opensuse/bci/golang:1.23 go build -v
|
||||
$ podman run --rm -v "$PWD":/app:Z -w /app registry.opensuse.org/opensuse/bci/golang:1.25 go build -v
|
||||
```
|
||||
|
||||
To run the application tests inside a container, use the following command:
|
||||
|
||||
```ShellSession
|
||||
$ podman run --rm -v "$PWD":/app:Z -w /app registry.opensuse.org/opensuse/bci/golang:1.23 go test -v
|
||||
$ podman run --rm -v "$PWD":/app:Z -w /app registry.opensuse.org/opensuse/bci/golang:1.25 go test -v
|
||||
```
|
||||
|
||||
|
||||
### Building from SLE BCI
|
||||
### Building from openSUSE BCI
|
||||
|
||||
The [SLE BCI General Purpose Base Containers](https://opensource.suse.com/bci-docs/documentation/general-purpose-bci/)
|
||||
The [openSUSE BCI General Purpose Base Containers](https://opensource.suse.com/bci-docs/documentation/general-purpose-bci/)
|
||||
images offer four different options for deployment, depending on your exact requirements.
|
||||
|
||||
```Dockerfile
|
||||
# Build the application using the Go 1.23 development Container Image
|
||||
FROM registry.opensuse.org/opensuse/bci/golang:1.23 as build
|
||||
# Build the application using the Go 1.25 development Container Image
|
||||
FROM registry.opensuse.org/opensuse/bci/golang:1.25 as build
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
@@ -103,25 +103,25 @@ COPY . ./
|
||||
RUN go build -o /hello
|
||||
|
||||
# Bundle the application into a scratch image
|
||||
FROM registry.suse.com/bci/bci-micro:15.4
|
||||
FROM registry.opensuse.org/opensuse/bci/bci-micro:latest
|
||||
|
||||
COPY --from=build /hello /usr/local/bin/hello
|
||||
|
||||
CMD ["/usr/local/bin/hello"]
|
||||
```
|
||||
|
||||
The above example uses the SLE BCI micro image as the deployment image for
|
||||
the resulting application. See the [SLE BCI use with Go
|
||||
The above example uses the openSUSE BCI micro image as the deployment image for
|
||||
the resulting application. See the [openSUSE BCI use with Go
|
||||
documentation](https://opensource.suse.com/bci-docs/guides/use-with-golang/)
|
||||
for further details.
|
||||
|
||||
|
||||
## Additional tools
|
||||
|
||||
In addition to the standard SLE BCI development packages, the following tools
|
||||
In addition to the standard openSUSE BCI development packages, the following tools
|
||||
are included in the image:
|
||||
|
||||
- go1.23-race
|
||||
- go1.25-race
|
||||
- make
|
||||
|
||||
## Licensing
|
||||
|
||||
5
_service
5
_service
@@ -1,9 +1,10 @@
|
||||
<services>
|
||||
<service mode="buildtime" name="docker_label_helper"/>
|
||||
<service mode="buildtime" name="kiwi_metainfo_helper"/>
|
||||
<service name="replace_using_package_version" mode="buildtime">
|
||||
<service mode="buildtime" name="replace_using_package_version">
|
||||
<param name="file">Dockerfile</param>
|
||||
<param name="regex">%%golang_version%%</param>
|
||||
<param name="package">go1.23</param>
|
||||
<param name="package">go1.25</param>
|
||||
<param name="parse-version">patch</param>
|
||||
</service>
|
||||
</services>
|
||||
@@ -1,3 +1,118 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Nov 6 08:22:20 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- avoid using SLE in the openSUSE BCI images
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 20 12:53:40 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- remove password change date from /etc/shadow to make the file reproducible
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 6 15:31:11 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- remove excessive whitespace
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 29 09:32:28 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- remove non-reproducible files from container
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Aug 25 14:29:38 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- update go stable/oldstable to 1.24/1.25
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Aug 1 14:26:25 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- zypper clean all the files
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jul 31 11:18:59 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- remove shadow backup from container
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 23 11:23:16 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- use SOURCEURL_WITH to generate proper artifacthub urls
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 28 10:47:42 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- zypper clean also the system repository from the container
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 14 08:40:50 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- stylistic changes to pass dockerfmt
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Feb 12 15:38:34 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- go 1.24 for stable, move oldstable to 1.23
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 1 14:13:48 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- update copyright year
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 20 10:46:43 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- limit to patch level version to avoid the go language ecosystem from being confused
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 3 13:26:37 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- Change attribute order in _service
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 30 15:34:45 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- remove nonsensical org.opencontainers.image.authors - duplication of .vendor
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 29 15:23:20 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- drop tag_version-%RELEASE%
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 14 11:26:26 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- make the version-%release tag the first one listed; remove duplicates where they existed; update image.ref/reference to point to the version-%release(-) tag
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 11 15:12:52 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
|
||||
|
||||
- make the tag with -%RELEASE% the first tag listed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 28 08:15:08 UTC 2024 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- fix registry references in READMEs
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 25 17:36:16 UTC 2024 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- rerender installation step in multiple lines, allow uninstalling optional packages
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Sep 25 17:12:11 UTC 2024 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- improved log cleaning
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 24 20:00:32 UTC 2024 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- remove release tags for additional_versions
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 12 10:37:22 UTC 2024 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
- set useobsrepositories explicitly
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 6 11:30:01 UTC 2024 - Dirk Mueller <dmueller@suse.com>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user