larc r22

36 lines ยท 971 B Raw
1 FROM golang:alpine AS builder
2 RUN apk add --no-cache gcc musl-dev sqlite-dev
3 WORKDIR /build
4 COPY go.mod go.sum ./
5 RUN go mod download
6 COPY . .
7 RUN CGO_ENABLED=1 GOOS=linux go build -ldflags="-s -w" -o larc ./cmd/larc
8 RUN CGO_ENABLED=1 GOOS=linux go build -ldflags="-s -w" -o larcs ./cmd/larcs
9
10 #runtime
11 FROM alpine:edge
12
13 RUN apk add --no-cache \
14 sqlite-libs \
15 ca-certificates \
16 apache2-utils \
17 && adduser -D -h /home/larc larc
18
19 WORKDIR /app
20 COPY --from=builder /build/larc /usr/local/bin/
21 COPY --from=builder /build/larcs /usr/local/bin/
22 COPY --from=builder /build/conf/larcs.example.yaml /etc/larcs/config.example.yaml
23 RUN mkdir -p /var/lib/larcs/repos /etc/larcs \
24 && chown -R larc:larc /var/lib/larcs /etc/larcs
25
26 ENV LARCS_CONFIG=/etc/larcs/config.yaml
27
28 USER larc
29
30 EXPOSE 8080
31
32 HEALTHCHECK --interval=30s --timeout=3s --start-period=5s \
33 CMD wget -q --spider http://localhost:8080/ || exit 1
34
35 CMD ["larcs", "-config", "/etc/larcs/config.yaml"]
36