Add Docker

This commit is contained in:
vlnst 2024-11-26 02:32:05 +03:00
parent f692d1eb2d
commit 86203ebb7b
Signed by untrusted user: vlnst
GPG Key ID: 601563C5C998579A
4 changed files with 42 additions and 0 deletions

6
.dockerignore Normal file
View File

@ -0,0 +1,6 @@
cache
compose.yaml
*.json
LICENSE
*.md
services

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
**/cache **/cache
**/compose.yaml
**/config.json **/config.json
**/skunkyart **/skunkyart
**/skunkyart-* **/skunkyart-*

23
Dockerfile Normal file
View File

@ -0,0 +1,23 @@
ARG GO_VERSION=1.18
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION} AS build
ARG TARGETOS
ARG TARGETARCH
WORKDIR /build
COPY . .
RUN CGO_ENABLED=0 GOARCH=${TARGETARCH} GOOS=${TARGETOS} go build -ldflags "-s -w -extldflags '-static'" && \
echo "skunkyart:x:10000:10000:SkunkyArt user:/:/sbin/nologin" > /etc/minimal-passwd && \
echo "skunkyart:x:10000:" > /etc/minimal-group
FROM scratch
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
COPY --from=build /build/static /static
COPY --from=build /build/skunkyart /skunkyart
COPY --from=build /etc/minimal-passwd /etc/passwd
COPY --from=build /etc/minimal-group /etc/group
USER skunkyart
ENTRYPOINT ["/skunkyart"]

12
compose.example.yaml Normal file
View File

@ -0,0 +1,12 @@
services:
skunkyart:
container_name: skunkyart
restart: unless-stopped
build: .
ports:
- "127.0.0.1:3003:3003"
security_opt:
- no-new-privileges:true
volumes:
- ./config.json:/config.json:ro
- ./cache:/cache # Ensure cache folder has a 10000:10000 ownership.