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.

65 lines
1.3 KiB

# syntax = docker/dockerfile:1.2
FROM as go-builder
RUN dnf makecache
WORKDIR /usr/src/nikita-tokarch-uk-frontend
RUN dnf install -yq golang
COPY go.mod .
COPY go.sum .
RUN --mount=type=cache,id=gopath,target=${GOPATH} \
go mod \
ARG APP_VERSION=containerized
COPY cmd cmd
COPY pkg pkg
RUN --mount=type=cache,id=gopath,target=${GOPATH} \
go build \
-o nikita-tokarch-uk-frontend \
-ldflags "-X main.Version=${APP_VERSION}" \
FROM as js-builder
RUN dnf makecache
WORKDIR /usr/src/nikita-tokarch-uk-frontend
RUN dnf install -yq nodejs npm
COPY package-lock.json .
COPY package.json .
RUN npm ci
ARG NODE_ENV=production
COPY webpack.config.js .
COPY web web
RUN npm run build
FROM as final
RUN dnf makecache
RUN dnf install -yq nginx
RUN mv /usr/share/nginx/html/index.html /usr/share/nginx/html/version.html
COPY nginx /etc/nginx
COPY --from=go-builder \
/usr/src/nikita-tokarch-uk-frontend/nikita-tokarch-uk-frontend \
COPY --from=js-builder \
/usr/src/nikita-tokarch-uk-frontend/out \
CMD ["/bin/false"]