You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
796 B
40 lines
796 B
# ADMIN DASHBOARD BUILD
|
|
FROM node:lts-alpine as build-client
|
|
|
|
WORKDIR /build/client
|
|
|
|
RUN apk add --no-cache make
|
|
|
|
COPY . /build/
|
|
RUN npm install && npm run build && mkdir -p /build/.bin/static && cp -R ./public /build/.bin/static
|
|
|
|
# DNS/API SERVER BUILD
|
|
FROM golang:alpine as build-server
|
|
|
|
WORKDIR /build/
|
|
|
|
RUN apk add --no-cache --update make gcc musl-dev
|
|
|
|
COPY --from=build-client /build /build
|
|
RUN make .bin/gopherhole
|
|
|
|
# RUNTIME ENVIRONMENT
|
|
FROM alpine
|
|
|
|
WORKDIR /opt
|
|
|
|
RUN apk add --no-cache ca-certificates
|
|
|
|
RUN addgroup gopherhole \
|
|
&& adduser -H -D gopherhole gopherhole \
|
|
&& mkdir -p /data \
|
|
&& chown -R gopherhole /data
|
|
|
|
COPY --chown=gopherhole:gopherhole --from=build-server /build/.bin/gopherhole /opt/gopherhole
|
|
|
|
USER gopherhole
|
|
|
|
VOLUME "/data"
|
|
|
|
ENTRYPOINT /opt/gopherhole
|