22 Commits

Author SHA1 Message Date
c47f8f0182 Merge pull request #39 from N0rthernL1ghts/dependabot/github_actions/docker/bake-action-6.7.0
Bump docker/bake-action from 6.6.0 to 6.7.0
2025-05-18 12:45:28 +02:00
dependabot[bot]
157fa7e7fe Bump docker/bake-action from 6.6.0 to 6.7.0
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 6.6.0 to 6.7.0.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v6.6.0...v6.7.0)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-version: 6.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-16 10:32:31 +00:00
45e0d61c6b Merge pull request #38 from N0rthernL1ghts/dependabot/github_actions/docker/bake-action-6.6.0
Bump docker/bake-action from 6.5.0 to 6.6.0
2025-04-25 23:04:01 +02:00
dependabot[bot]
e9d28ed5b0 Bump docker/bake-action from 6.5.0 to 6.6.0
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 6.5.0 to 6.6.0.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v6.5.0...v6.6.0)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-version: 6.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-25 10:36:22 +00:00
b3b6ef30be Remove gha cache 2025-03-13 04:15:14 +01:00
c3b7cc2f6e Use self-hosted runner 2025-03-13 03:48:53 +01:00
dcf140d2cf Revert busybox rebase. Busybox's wget seems to have a bug
See (Docker): https://github.com/docker-library/busybox/issues/162

See (Upstream): https://bugs.busybox.net/show_bug.cgi?id=15679
2025-03-12 04:03:39 +01:00
b3ac1158ba Refactor, add arch/noarch symlinks, simplify and rebase build stages to busybox 2025-03-12 02:55:04 +01:00
a1dcabe094 Update to version 3.2.0.2 2025-03-02 00:12:15 +01:00
0dff2e2eda Add versions 3.2.0.0, 3.2.0.1 and 3.2.0.2 2025-03-02 00:05:37 +01:00
d5c6850960 Stop using deprecated TARGETPLATFORM @ FROM directives 2025-03-01 23:57:27 +01:00
3c24c63a3b Add note about broken GHA builds 2025-03-01 23:53:31 +01:00
b5b8811d71 Update comment 2025-03-01 23:51:46 +01:00
77a6a1ae38 Remove dockerhub 2025-03-01 23:44:32 +01:00
0bfc6f469c Merge pull request #37 from N0rthernL1ghts/dependabot/github_actions/docker/bake-action-6.5.0
Bump docker/bake-action from 6.4.0 to 6.5.0
2025-03-01 23:35:26 +01:00
dependabot[bot]
72054b6337 Bump docker/bake-action from 6.4.0 to 6.5.0
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 6.4.0 to 6.5.0.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v6.4.0...v6.5.0)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-27 10:44:57 +00:00
28d2032581 Merge pull request #35 from N0rthernL1ghts/dependabot/github_actions/docker/bake-action-6.4.0
Bump docker/bake-action from 4.1.0 to 6.4.0
2025-02-24 18:36:20 +01:00
5df5a0b695 Merge pull request #36 from N0rthernL1ghts/dependabot/docker/alpine-3.21
Bump alpine from 3.20 to 3.21
2025-02-24 18:34:25 +01:00
dependabot[bot]
8a0aa787ba Bump alpine from 3.20 to 3.21
Bumps alpine from 3.20 to 3.21.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 11:57:22 +00:00
dependabot[bot]
659a9bf2ee Bump docker/bake-action from 4.1.0 to 6.4.0
Bumps [docker/bake-action](https://github.com/docker/bake-action) from 4.1.0 to 6.4.0.
- [Release notes](https://github.com/docker/bake-action/releases)
- [Commits](https://github.com/docker/bake-action/compare/v4.1.0...v6.4.0)

---
updated-dependencies:
- dependency-name: docker/bake-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 11:03:51 +00:00
9ec886c907 Merge pull request #24 from N0rthernL1ghts/dependabot/docker/alpine-3.20
Bump alpine from 3.19 to 3.20
2025-02-22 16:38:59 +01:00
dependabot[bot]
74ab34ea96 Bump alpine from 3.19 to 3.20
Bumps alpine from 3.19 to 3.20.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-27 10:11:45 +00:00
5 changed files with 94 additions and 64 deletions

View File

@@ -6,7 +6,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
runs-on: vulcan
steps:
-
name: checkout code
@@ -36,7 +36,7 @@ jobs:
password: ${{secrets.PAT_TOKEN}}
-
name: Build and push
uses: docker/bake-action@v4.1.0
uses: docker/bake-action@v6.7.0
with:
files: build/docker-bake.hcl
push: true

View File

@@ -1,69 +1,74 @@
ARG S6_OVERLAY_VERSION="3.1.0.0"
ARG S6_OVERLAY_RELEASE="https://github.com/just-containers/s6-overlay/releases/download/"
ARG S6_OVERLAY_VERSION="3.2.0.2"
ARG S6_OVERLAY_RELEASE="https://github.com/just-containers/s6-overlay/releases/download"
ARG S6_OVERLAY_PAK_EXT=".tar.xz"
# First stage - Download s6-overlay noarch base and unpack it
FROM scratch AS downloader-s6-base
ARG S6_OVERLAY_VERSION
ARG S6_OVERLAY_RELEASE
ARG S6_OVERLAY_PAK_EXT
ADD "${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-noarch${S6_OVERLAY_PAK_EXT}" /s6overlay-base.tar.xz
# Second stage - Download s6-overlay platform-dependent binaries and unpack
FROM --platform=${TARGETPLATFORM} alpine:3.19 AS downloader-s6-bin
# Downloader stage: download s6-overlay base, binary, symlinks and checksums
FROM alpine:3.21 AS downloader
ARG TARGETPLATFORM
ARG S6_OVERLAY_VERSION
ARG S6_OVERLAY_RELEASE
ARG S6_OVERLAY_PAK_EXT
ARG S6_OVERLAY_RELEASE_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-${TARGETPLATFORM}${S6_OVERLAY_PAK_EXT}"
ARG S6_OVERLAY_HASH_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-${TARGETPLATFORM}${S6_OVERLAY_PAK_EXT}.sha256"
# Set environment variables
ENV BASE_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-noarch${S6_OVERLAY_PAK_EXT}"
ENV BASE_HASH_URL="${BASE_URL}.sha256"
ENV BIN_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-${TARGETPLATFORM}${S6_OVERLAY_PAK_EXT}"
ENV BIN_HASH_URL="${BIN_URL}.sha256"
ENV SYMLINKS_ARCH_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-arch${S6_OVERLAY_PAK_EXT}"
ENV SYMLINKS_ARCH_HASH_URL="${SYMLINKS_ARCH_URL}.sha256"
ENV SYMLINKS_NOARCH_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-symlinks-noarch${S6_OVERLAY_PAK_EXT}"
ENV SYMLINKS_NOARCH_HASH_URL="${SYMLINKS_NOARCH_URL}.sha256"
RUN set -eux \
&& apk add --no-cache wget \
&& wget -O /s6overlay-bin.tar.xz "$(echo ${S6_OVERLAY_RELEASE_URL} | sed 's/linux\///g' | sed 's/amd64/x86_64/g' | sed 's/arm64/aarch64/g' | sed 's/arm\/v7/armhf/g')"
# Replace platform
&& BIN_URL_FIXED=$(echo "${BIN_URL}" | sed -e 's/linux\///g' -e 's/amd64/x86_64/g' -e 's/arm64/aarch64/g' -e 's|arm/v7|armhf|g') \
&& BIN_HASH_URL_FIXED=$(echo "${BIN_HASH_URL}" | sed -e 's/linux\///g' -e 's/amd64/x86_64/g' -e 's/arm64/aarch64/g' -e 's|arm/v7|armhf|g') \
# Download s6-overlay binaries
&& wget -O /s6overlay-bin.tar.xz "${BIN_URL_FIXED}" \
&& wget -O /s6overlay-bin.tar.xz.sha256 "${BIN_HASH_URL_FIXED}" \
# Download s6-overlay base and its hash
&& wget -O /s6overlay-base.tar.xz "${BASE_URL}" \
&& wget -O /s6overlay-base.tar.xz.sha256 "${BASE_HASH_URL}" \
# Download s6-overlay symlinks \
&& wget -O /s6overlay-arch-symlinks.tar.xz "${SYMLINKS_ARCH_URL}" \
&& wget -O /s6overlay-arch-symlinks.tar.xz.sha256 "${SYMLINKS_ARCH_HASH_URL}" \
&& wget -O /s6overlay-noarch-symlinks.tar.xz "${SYMLINKS_NOARCH_URL}" \
&& wget -O /s6overlay-noarch-symlinks.tar.xz.sha256 "${SYMLINKS_NOARCH_HASH_URL}" \
# Build SHA256SUMS file
&& echo "$(cut -d' ' -f1 /s6overlay-base.tar.xz.sha256) /s6overlay-base.tar.xz" > /SHA256SUMS \
&& echo "$(cut -d' ' -f1 /s6overlay-bin.tar.xz.sha256) /s6overlay-bin.tar.xz" >> /SHA256SUMS \
&& echo "$(cut -d' ' -f1 /s6overlay-arch-symlinks.tar.xz.sha256) /s6overlay-arch-symlinks.tar.xz" >> /SHA256SUMS \
&& echo "$(cut -d' ' -f1 /s6overlay-noarch-symlinks.tar.xz.sha256) /s6overlay-noarch-symlinks.tar.xz" >> /SHA256SUMS \
# Verify integrity of downloaded files
&& sha256sum -c /SHA256SUMS
# Builder stage
FROM busybox AS builder
# Third stage - Download s6-overlay platform-dependent hashes
FROM --platform=${TARGETPLATFORM} alpine:3.19 AS downloader-s6-sha256-sums
ARG TARGETPLATFORM
ARG S6_OVERLAY_VERSION
ARG S6_OVERLAY_RELEASE
ARG S6_OVERLAY_PAK_EXT
ARG S6_OVERLAY_BASE_HASH_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-noarch${S6_OVERLAY_PAK_EXT}.sha256"
ARG S6_OVERLAY_BIN_HASH_URL="${S6_OVERLAY_RELEASE}/v${S6_OVERLAY_VERSION}/s6-overlay-${TARGETPLATFORM}${S6_OVERLAY_PAK_EXT}.sha256"
COPY --from=downloader ["/s6overlay-base.tar.xz", "/s6overlay-bin.tar.xz", "/s6overlay-arch-symlinks.tar.xz", "/s6overlay-noarch-symlinks.tar.xz", "/tmp/s6/"]
RUN set -eux \
&& apk add --no-cache wget \
&& wget -O /s6overlay-base.tar.xz.sha256 "${S6_OVERLAY_BASE_HASH_URL}" \
&& wget -O /s6overlay-bin.tar.xz.sha256 "$(echo "${S6_OVERLAY_BIN_HASH_URL}" | sed 's/linux\///g' | sed 's/amd64/x86_64/g' | sed 's/arm64/aarch64/g' | sed 's/arm\/v7/armhf/g')" \
&& echo "$(cat /s6overlay-base.tar.xz.sha256 | cut -d' ' -f1) /s6overlay-base.tar.xz" > /SHA256SUMS \
&& echo "$(cat /s6overlay-bin.tar.xz.sha256 | cut -d' ' -f1) /s6overlay-bin.tar.xz" >> /SHA256SUMS \
&& rm /s6overlay-base.tar.xz.sha256 \
&& rm /s6overlay-bin.tar.xz.sha256
&& mkdir -p /build \
&& tar -Jxpf /tmp/s6/s6overlay-base.tar.xz -C /build \
&& tar -Jxpf /tmp/s6/s6overlay-bin.tar.xz -C /build \
&& tar -Jxpf /tmp/s6/s6overlay-arch-symlinks.tar.xz -C /build \
&& tar -Jxpf /tmp/s6/s6overlay-noarch-symlinks.tar.xz -C /build
# Fourth stage - Build rootfs from s6 parts
FROM alpine:3.19 AS rootfs-builder
# Rootfs
FROM scratch AS rootfs
COPY --from=downloader-s6-sha256-sums ["/SHA256SUMS", "/"]
COPY --from=downloader-s6-base ["/s6overlay-base.tar.xz", "/s6overlay-base.tar.xz"]
COPY --from=downloader-s6-bin ["/s6overlay-bin.tar.xz", "/s6overlay-bin.tar.xz"]
WORKDIR "/rootfs-build/"
RUN set -eux \
&& sha256sum -c /SHA256SUMS \
&& apk add --no-cache tar xz \
&& tar -Jxpf /s6overlay-base.tar.xz -C /rootfs-build \
&& tar -Jxpf /s6overlay-bin.tar.xz -C /rootfs-build
COPY --from=builder ["/build/", "/"]
# Final stage
FROM scratch AS s6-rootfs
# Final image: minimal rootfs
FROM scratch
LABEL maintainer="Aleksandar Puharic <aleksandar@puharic.com>"
COPY --from=rootfs-builder ["/rootfs-build/", "/"]
COPY --from=rootfs ["/", "/"]

View File

@@ -1,5 +1,5 @@
# First stage - Download s6-overlay and unpack it
FROM --platform=${TARGETPLATFORM} alpine:3.19 AS downloader
FROM alpine:3.21 AS downloader
ARG TARGETPLATFORM
@@ -7,15 +7,15 @@ ARG TARGETPLATFORM
ARG S6_OVERLAY_VERSION="2.2.0.3"
ARG S6_OVERLAY_RELEASE="https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${TARGETPLATFORM}.tar.gz"
WORKDIR "/s6-overlay/"
RUN apk add --no-cache wget tar gzip \
RUN set -eux \
&& mkdir -p /s6-overlay \
&& wget -O /tmp/s6overlay.tar.gz $(echo ${S6_OVERLAY_RELEASE} | sed 's/linux\///g' | sed 's/arm64/aarch64/g' | sed 's/arm\/v7/armhf/g') \
&& tar xzf /tmp/s6overlay.tar.gz -C /s6-overlay
# Final stage
FROM scratch AS s6-rootfs
FROM scratch
LABEL maintainer="Aleksandar Puharic <aleksandar@puharic.com>"

View File

@@ -2,19 +2,23 @@
The simplest and fastest way to get S6 supervisor in your image
This docker image packages s6 supervisor overlay based on https://github.com/just-containers/s6-overlay releases.
NOTE: GitHub Actions builds are currently broken. Images are, however manually built, so you should be still getting latest version.
### Usage
```Docker
COPY --from=ghcr.io/n0rthernl1ghts/s6-rootfs:latest ["/", "/"]
```
or with fixed version:
```Docker
COPY --from=ghcr.io/n0rthernl1ghts/s6-rootfs:3.1.2.1 ["/", "/"]
COPY --from=ghcr.io/n0rthernl1ghts/s6-rootfs:3.2.0.2 ["/", "/"]
```
That's it!
Note: We're moving to ghcr.io. `docker.io/nlss/s6-rootfs` will be kept up-to-date until May 2023, when is Docker sunsetting free teams.<br/>
It is highly recommended that you start using `ghcr.io/n0rthernl1ghts/s6-rootfs`.
Note: We have moved to `ghcr.io`. Docker hub `docker.io/nlss/s6-rootfs` builds are discontinued.<br/>
###### Recommended way to integrate with your image (example)
```Docker
@@ -27,7 +31,7 @@ FROM scratch AS rootfs
COPY ["./rootfs", "/"]
# Install S6
COPY --from=ghcr.io/n0rthernl1ghts/s6-rootfs:3.1.2.1 ["/", "/"]
COPY --from=ghcr.io/n0rthernl1ghts/s6-rootfs:3.2.0.2 ["/", "/"]
# ---------------------

View File

@@ -6,8 +6,9 @@ group "default" {
"3_1_0_0", "3_1_0_1", "3_1_1_0",
"3_1_1_1", "3_1_1_2", "3_1_2_0",
"3_1_2_1", "3_1_3_0", "3_1_4_0",
"3_1_4_1", "3_1_4_2", "3_1_5_0",
"3_1_6_0", "3_1_6_1", "3_1_6_2"
"3_1_4_1", "3_1_4_2", "3_1_5_0",
"3_1_6_0", "3_1_6_1", "3_1_6_2",
"3_2_0_0", "3_2_0_1", "3_2_0_2"
]
}
@@ -28,7 +29,7 @@ target "build-common" {
}
variable "REGISTRY_CACHE" {
default = "docker.io/nlss/s6-rootfs-cache"
default = "ghcr.io/n0rthernl1ghts/s6-rootfs-cache"
}
######################
@@ -56,7 +57,6 @@ function "get-args-with-pak-ext" {
function "get-cache-from" {
params = [version]
result = [
"type=gha,scope=${version}_${BAKE_LOCAL_PLATFORM}",
"type=registry,ref=${REGISTRY_CACHE}:${sha1("${version}-${BAKE_LOCAL_PLATFORM}")}"
]
}
@@ -65,7 +65,6 @@ function "get-cache-from" {
function "get-cache-to" {
params = [version]
result = [
"type=gha,mode=max,scope=${version}_${BAKE_LOCAL_PLATFORM}",
"type=registry,mode=max,ref=${REGISTRY_CACHE}:${sha1("${version}-${BAKE_LOCAL_PLATFORM}")}"
]
}
@@ -77,12 +76,10 @@ function "get-tags" {
params = [version, extra_versions]
result = concat(
[
"docker.io/nlss/s6-rootfs:${version}",
"ghcr.io/n0rthernl1ghts/s6-rootfs:${version}"
],
flatten([
for extra_version in extra_versions : [
"docker.io/nlss/s6-rootfs:${extra_version}",
"ghcr.io/n0rthernl1ghts/s6-rootfs:${extra_version}"
]
])
@@ -281,6 +278,30 @@ target "3_1_6_2" {
inherits = ["build-dockerfile", "build-platforms", "build-common"]
cache-from = get-cache-from("3.1.6.2")
cache-to = get-cache-to("3.1.6.2")
tags = get-tags("3.1.6.2", ["3.1", "3.1.6", "latest"])
tags = get-tags("3.1.6.2", ["3.1", "3.1.6"])
args = get-args("3.1.6.2")
}
target "3_2_0_0" {
inherits = ["build-dockerfile", "build-platforms", "build-common"]
cache-from = get-cache-from("3.2.0.0")
cache-to = get-cache-to("3.2.0.0")
tags = get-tags("3.2.0.0", [])
args = get-args("3.2.0.0")
}
target "3_2_0_1" {
inherits = ["build-dockerfile", "build-platforms", "build-common"]
cache-from = get-cache-from("3.2.0.1")
cache-to = get-cache-to("3.2.0.1")
tags = get-tags("3.2.0.1", [])
args = get-args("3.2.0.0")
}
target "3_2_0_2" {
inherits = ["build-dockerfile", "build-platforms", "build-common"]
cache-from = get-cache-from("3.2.0.2")
cache-to = get-cache-to("3.2.0.2")
tags = get-tags("3.2.0.2", ["3.2", "3.2.0", "latest"])
args = get-args("3.2.0.2")
}