Dockerfile 843 B

1234567891011121314151617
  1. FROM node:14.2-alpine3.11 AS frontend-builder
  2. COPY frontend/ /app
  3. RUN cd /app && npm install && npm run build
  4. FROM golang:1.14.2-buster AS backend-builder
  5. COPY --from=frontend-builder /app/static /app/frontend/static
  6. COPY . /app
  7. RUN go get -u github.com/gobuffalo/packr/v2/packr2 && cd /app && packr2 && env CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -ldflags='-linkmode external -extldflags "-static" -s -w' -o ovpn-admin && packr2 clean
  8. FROM alpine:3.13
  9. WORKDIR /app
  10. COPY --from=backend-builder /app/ovpn-admin /app
  11. RUN apk add --update bash easy-rsa && \
  12. ln -s /usr/share/easy-rsa/easyrsa /usr/local/bin && \
  13. wget https://github.com/pashcovich/openvpn-user/releases/download/v1.0.3-rc.1/openvpn-user-linux-amd64.tar.gz -O - | tar xz -C /usr/local/bin && \
  14. rm -rf /tmp/* /var/tmp/* /var/cache/apk/* /var/cache/distfiles/*