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.
nikita-tokarch-uk/Dockerfile

64 lines
1.3 KiB

3 years ago
# syntax = docker/dockerfile:1.2
FROM registry.access.redhat.com/ubi8/ubi 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 \
download
ARG APP_VERSION=containerized
COPY frontend frontend
RUN --mount=type=cache,id=gopath,target=${GOPATH} \
go build \
-o nikita-tokarch-uk-frontend \
-ldflags "-X main.Version=${APP_VERSION}" \
code.tokarch.uk/mainnika/nikita-tokarch-uk/frontend
FROM registry.access.redhat.com/ubi8/ubi 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 registry.access.redhat.com/ubi8/ubi 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 \
/usr/local/bin/nikita-tokarch-uk-frontend
COPY --from=js-builder \
/usr/src/nikita-tokarch-uk-frontend/out \
/usr/share/nginx/html
CMD ["/bin/false"]