Files
calspot/Dockerfile

39 lines
768 B
Docker

FROM golang:alpine AS builder
# Install build tools needed for go-sqlite3 (CGO)
RUN apk add --no-cache gcc musl-dev
WORKDIR /app
# Initialize module and get dependencies
RUN go mod init calendar-service && \
go get github.com/mattn/go-sqlite3 && \
go get golang.org/x/crypto/bcrypt && \
go get golang.org/x/net/webdav && \
go get github.com/google/uuid
COPY main.go .
RUN go build -o server main.go
# Final Stage
FROM alpine:latest
# Create non-root user
RUN addgroup -g 1000 appuser && \
adduser -D -u 1000 -G appuser appuser
WORKDIR /home/appuser
COPY --from=builder /app/server .
# Create directory for sqlite db
RUN mkdir -p data && chown -R appuser:appuser /home/appuser
USER appuser
EXPOSE 8000
# Run the server
CMD ["./server"]