fasten-onprem/Dockerfile

57 lines
2.0 KiB
Docker
Raw Normal View History

#########################################################################################################
# Frontend Build
#########################################################################################################
FROM node:18.9.0 as frontend-build
2022-12-17 16:10:19 -07:00
ARG FASTEN_ENV=sandbox
WORKDIR /usr/src/fastenhealth/frontend
2023-01-25 22:06:52 -07:00
COPY frontend/package.json frontend/yarn.lock ./
2023-01-25 23:22:18 -07:00
RUN yarn --version && \
yarn config delete proxy && \
yarn config delete https-proxy && \
2023-01-25 23:31:48 -07:00
yarn config set registry 'http://registry.npmjs.org' && \
2023-01-25 23:33:29 -07:00
yarn config list && \
2023-01-26 00:11:29 -07:00
yarn install --frozen-lockfile --network-timeout 300000
COPY frontend/ ./
2022-12-17 16:10:19 -07:00
RUN yarn run build -- --configuration ${FASTEN_ENV} --output-path=../dist
#########################################################################################################
# Backend Build
#########################################################################################################
FROM golang:1.18 as backend-build
WORKDIR /go/src/github.com/fastenhealth/fastenhealth-onprem
COPY . .
RUN go mod vendor \
&& go install github.com/golang/mock/mockgen@v1.6.0 \
&& go generate ./... \
&& go vet ./... \
&& go test ./...
RUN CGO_ENABLED=0 go build -o /go/bin/fasten ./backend/cmd/fasten/
2022-09-26 23:14:29 -06:00
# create folder structure
RUN mkdir -p /opt/fasten/db \
2022-09-27 23:23:40 -06:00
&& mkdir -p /opt/fasten/web \
2022-12-17 16:10:19 -07:00
&& mkdir -p /opt/fasten/config
#########################################################################################################
# Distribution Build
#########################################################################################################
2022-12-17 16:10:19 -07:00
FROM gcr.io/distroless/static-debian11
2022-09-26 23:14:29 -06:00
WORKDIR /opt/fasten/
COPY --from=backend-build /opt/fasten/ /opt/fasten/
COPY --from=frontend-build /usr/src/fastenhealth/dist /opt/fasten/web
COPY --from=backend-build /go/bin/fasten /opt/fasten/fasten
COPY LICENSE.md /opt/fasten/LICENSE.md
2022-09-26 23:14:29 -06:00
COPY config.yaml /opt/fasten/config/config.yaml
2022-12-17 16:10:19 -07:00
CMD ["/opt/fasten/fasten", "start", "--config", "/opt/fasten/config/config.yaml"]