Dockerfile
749 bytes
1FROM golang:1.27-alpine AS build
2
3WORKDIR /src
4
5COPY go.mod go.sum ./
6RUN go mod download
7
8COPY . .
9RUN CGO_ENABLED=0 go build -trimpath -o soft ./cmd/soft
10
11FROM alpine:latest
12
13# Create directories
14WORKDIR /soft-serve
15# Expose data volume
16VOLUME /soft-serve
17
18# Environment variables
19ENV SOFT_SERVE_DATA_PATH "/soft-serve"
20ENV SOFT_SERVE_INITIAL_ADMIN_KEYS ""
21# workaround to prevent slowness in docker when running with a tty
22ENV CI "1"
23
24# Expose ports
25# SSH
26EXPOSE 23231/tcp
27# HTTP
28EXPOSE 23232/tcp
29# Stats
30EXPOSE 23233/tcp
31# Git
32EXPOSE 9418/tcp
33
34# Set the default command
35ENTRYPOINT [ "/usr/local/bin/soft", "serve" ]
36
37RUN apk update && apk add --update git bash openssh && rm -rf /var/cache/apk/*
38
39COPY --from=build /src/soft /usr/local/bin/soft