Commit 86203ebb7b

86203ebb7b37e8f14f8fbed31710d07f37d2b473

parent: f692d1eb2d

Unregistered key

vlnst <vlnst@bloat.cat> · 2024-11-25 23:32 UTC

Add Docker

Layout: unified · split

.dockerignore added +6
@@ -0,0 +1,6 @@
1cache
2compose.yaml
3*.json
4LICENSE
5*.md
6services
.gitignore +1
@@ -1,4 +1,5 @@
1**/cache 1**/cache
2**/compose.yaml
2**/config.json 3**/config.json
3**/skunkyart 4**/skunkyart
4**/skunkyart-* 5**/skunkyart-*
Dockerfile added +23
@@ -0,0 +1,23 @@
1ARG GO_VERSION=1.18
2
3FROM --platform=$BUILDPLATFORM golang:${GO_VERSION} AS build
4ARG TARGETOS
5ARG TARGETARCH
6
7WORKDIR /build
8COPY . .
9RUN CGO_ENABLED=0 GOARCH=${TARGETARCH} GOOS=${TARGETOS} go build -ldflags "-s -w -extldflags '-static'" && \
10 echo "skunkyart:x:10000:10000:SkunkyArt user:/:/sbin/nologin" > /etc/minimal-passwd && \
11 echo "skunkyart:x:10000:" > /etc/minimal-group
12
13FROM scratch
14
15COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
16COPY --from=build /build/static /static
17COPY --from=build /build/skunkyart /skunkyart
18COPY --from=build /etc/minimal-passwd /etc/passwd
19COPY --from=build /etc/minimal-group /etc/group
20
21USER skunkyart
22
23ENTRYPOINT ["/skunkyart"]
compose.example.yaml added +12
@@ -0,0 +1,12 @@
1services:
2 skunkyart:
3 container_name: skunkyart
4 restart: unless-stopped
5 build: .
6 ports:
7 - "127.0.0.1:3003:3003"
8 security_opt:
9 - no-new-privileges:true
10 volumes:
11 - ./config.json:/config.json:ro
12 - ./cache:/cache # Ensure cache folder has a 10000:10000 ownership.