diff --git a/.goreleaser.yml b/.goreleaser.yml index 57b7b44a..476a826e 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -40,144 +40,47 @@ archives: - goos: windows formats: ["zip"] -dockers: - # Alpine docker images - - dockerfile: Dockerfile - use: buildx - build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/amd64" - goos: linux - goarch: amd64 - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64" - - "filebrowser/filebrowser:v{{ .Major }}-amd64" +dockers_v2: + - id: filebrowser + images: + - "filebrowser/filebrowser" + dockerfile: Dockerfile + tags: + - "latest" + - "{{ .Tag }}" + - "v{{ .Major }}" + labels: + org.opencontainers.image.created: "{{.Date}}" + org.opencontainers.image.name: "{{.ProjectName}}" + org.opencontainers.image.revision: "{{.FullCommit}}" + org.opencontainers.image.version: "{{.Version}}" + org.opencontainers.image.source: "{{.GitURL}}" extra_files: - docker - - dockerfile: Dockerfile - use: buildx - build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/arm64" - goos: linux - goarch: arm64 - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-arm64" - - "filebrowser/filebrowser:v{{ .Major }}-arm64" + platforms: + - linux/amd64 + - linux/arm64 + - linux/arm/v6 + - linux/arm/v7 + - id: filebrowser-s6 + images: + - "filebrowser/filebrowser" + dockerfile: Dockerfile.s6 + tags: + - "s6" + - "{{ .Tag }}-s6" + - "v{{ .Major }}-s6" + labels: + org.opencontainers.image.created: "{{.Date}}" + org.opencontainers.image.name: "{{.ProjectName}}" + org.opencontainers.image.revision: "{{.FullCommit}}" + org.opencontainers.image.version: "{{.Version}}" + org.opencontainers.image.source: "{{.GitURL}}" extra_files: - docker - - dockerfile: Dockerfile - use: buildx - build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/arm/v6" - goos: linux - goarch: arm - goarm: "6" - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-armv6" - - "filebrowser/filebrowser:v{{ .Major }}-armv6" - extra_files: - - docker - - dockerfile: Dockerfile - use: buildx - build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/arm/v7" - goos: linux - goarch: arm - goarm: "7" - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-armv7" - - "filebrowser/filebrowser:v{{ .Major }}-armv7" - extra_files: - - docker - - ## s6-overlay docker images - - dockerfile: Dockerfile.s6 - use: buildx - build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/amd64" - goos: linux - goarch: amd64 - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64-s6" - - "filebrowser/filebrowser:v{{ .Major }}-amd64-s6" - extra_files: - - docker - - dockerfile: Dockerfile.s6 - use: buildx - build_flag_templates: - - "--pull" - - "--label=org.opencontainers.image.created={{.Date}}" - - "--label=org.opencontainers.image.name={{.ProjectName}}" - - "--label=org.opencontainers.image.revision={{.FullCommit}}" - - "--label=org.opencontainers.image.version={{.Version}}" - - "--label=org.opencontainers.image.source={{.GitURL}}" - - "--platform=linux/arm64" - goos: linux - goarch: arm64 - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-arm64-s6" - - "filebrowser/filebrowser:v{{ .Major }}-arm64-s6" - extra_files: - - docker - -docker_manifests: - - name_template: "filebrowser/filebrowser:latest" - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64" - - "filebrowser/filebrowser:{{ .Tag }}-arm64" - - "filebrowser/filebrowser:{{ .Tag }}-armv7" - - name_template: "filebrowser/filebrowser:{{ .Tag }}" - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64" - - "filebrowser/filebrowser:{{ .Tag }}-arm64" - - "filebrowser/filebrowser:{{ .Tag }}-armv7" - - name_template: "filebrowser/filebrowser:v{{ .Major }}" - image_templates: - - "filebrowser/filebrowser:v{{ .Major }}-amd64" - - "filebrowser/filebrowser:v{{ .Major }}-arm64" - - "filebrowser/filebrowser:v{{ .Major }}-armv7" - ## s6 image manifests - - name_template: "filebrowser/filebrowser:s6" - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64-s6" - - "filebrowser/filebrowser:{{ .Tag }}-arm64-s6" - - name_template: "filebrowser/filebrowser:{{ .Tag }}-s6" - image_templates: - - "filebrowser/filebrowser:{{ .Tag }}-amd64-s6" - - "filebrowser/filebrowser:{{ .Tag }}-arm64-s6" - - name_template: "filebrowser/filebrowser:v{{ .Major }}-s6" - image_templates: - - "filebrowser/filebrowser:v{{ .Major }}-amd64-s6" - - "filebrowser/filebrowser:v{{ .Major }}-arm64-s6" + platforms: + - linux/amd64 + - linux/arm64 homebrew_casks: - name: filebrowser diff --git a/Dockerfile b/Dockerfile index 8bd825da..6f04cf27 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,7 @@ RUN apk update && \ ## Second stage: Use lightweight BusyBox image for final runtime environment FROM busybox:1.37.0-musl +ARG TARGETPLATFORM # Define non-root user UID and GID ENV UID=1000 @@ -18,7 +19,7 @@ RUN addgroup -g $GID user && \ adduser -D -u $UID -G user user # Copy binary, scripts, and configurations into image with proper ownership -COPY --chown=user:user filebrowser /bin/filebrowser +COPY --chown=user:user $TARGETPLATFORM/filebrowser /bin/filebrowser COPY --chown=user:user docker/common/ / COPY --chown=user:user docker/alpine/ / COPY --chown=user:user --from=fetcher /sbin/tini-static /bin/tini diff --git a/Dockerfile.s6 b/Dockerfile.s6 index 2a1218b2..c9bd4e2b 100644 --- a/Dockerfile.s6 +++ b/Dockerfile.s6 @@ -1,4 +1,5 @@ FROM ghcr.io/linuxserver/baseimage-alpine:3.22 +ARG TARGETPLATFORM RUN apk update && \ apk --no-cache add ca-certificates mailcap jq libcap @@ -8,7 +9,7 @@ RUN mkdir -p /config /database /srv && \ chown -R abc:abc /config /database /srv # Copy files and set permissions -COPY filebrowser /bin/filebrowser +COPY $TARGETPLATFORM/filebrowser /bin/filebrowser COPY docker/common/ / COPY docker/s6/ /