Files
schnittfest/Dockerfile
2019-12-12 22:52:10 +01:00

46 lines
1.4 KiB
Docker

FROM golang AS build
RUN apt-get update && \
apt-get upgrade -y && \
apt-get install -y curl && \
curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh && bash nodesource_setup.sh && \
apt-get install -y nodejs
WORKDIR /go/src/github.com/Kugelschieber/schnittfest
ADD . .
# build server
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags "-s -w" /go/src/github.com/Kugelschieber/schnittfest/main.go && \
mkdir /app && mv /go/src/github.com/Kugelschieber/schnittfest/main /app/server
# compile CSS
RUN cd /go/src/github.com/Kugelschieber/schnittfest/style && bash -c "npm i" && bash -c "npm rebuild node-sass" && bash -c "npm run style"
# copy resources
RUN mv /go/src/github.com/Kugelschieber/schnittfest/template /app/template && \
mv /go/src/github.com/Kugelschieber/schnittfest/static /app/static
FROM alpine
RUN apk update && \
apk upgrade && \
apk add --no-cache && \
apk add ca-certificates && \
rm -rf /var/cache/apk/*
COPY --from=build /app /app
WORKDIR /app
RUN addgroup -S appuser && \
adduser -S -G appuser appuser && \
chown -R appuser:appuser /app
USER appuser
# default config
ENV EMVI_WIKI_HOST=0.0.0.0:8080
ENV EMVI_WIKI_LOGLEVEL=info
ENV EMVI_WIKI_ALLOWED_ORIGINS=*
ENV EMVI_WIKI_HTTP_WRITE_TIMEOUT=5
ENV EMVI_WIKI_HTTP_READ_TIMEOUT=5
ENV EMVI_WIKI_TEMPLATE_BASE=/template
# run
EXPOSE 8080
ENTRYPOINT ["/app/server"]