| 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 |
|