Files
cybertron-log-enricher/Dockerfile
2024-11-09 17:33:58 +05:30

55 lines
1.7 KiB
Docker

ARG GOLANG_TAG=golang:1.22.4
ARG NODE_JS_TAG=node:18.15.0-alpine3.16
# To run locally, use
#ARG GOLANG_TAG=registry.cmd.navi-tech.in/common/golang:1.19
FROM ${GOLANG_TAG} AS builder
RUN mkdir -p /build
WORKDIR /build
COPY . /build
RUN /bin/bash -c "make build-migrations"
RUN /bin/bash -c "make build-log-enricher"
FROM rust:slim AS symbolicator-builder
SHELL ["/bin/bash", "-uo", "pipefail", "-c"]
# Update this version when a new version of element is released
ENV ELEMENT_VERSION 1.11.80
RUN mkdir /src
WORKDIR /src
COPY . .
RUN cd cybertron-symbolicator \
&& cargo build --release --locked \
&& mv "target/release/source-map" . \
&& strip source-map
FROM ${NODE_JS_TAG} AS node-cache-builder
RUN mkdir /cache
WORKDIR /cache
COPY cybertron-symbolicator-react-native/package.json /cache
COPY cybertron-symbolicator-react-native/yarn.lock /cache
RUN npm install
FROM node:20-bookworm
RUN mkdir -p /usr/local
WORKDIR /usr/local
COPY --from=builder /build/out/log-enricher /usr/local/
COPY --from=builder /build/out/migrations /usr/local/migrations
COPY --from=builder /build/db/migrations/*.sql /usr/local/db/migrations/
COPY --from=builder /build/configs/application.yml /usr/local/configs/
RUN mkdir -p /usr/local/bins/cybertron-symbolicator-react-native
COPY --from=builder /build/cybertron-symbolicator-react-native /usr/local/bins/cybertron-symbolicator-react-native
COPY --from=node-cache-builder /cache/ /usr/local/bins/cybertron-symbolicator-react-native/
COPY --from=symbolicator-builder /src/cybertron-symbolicator/source-map /usr/local/bins/
RUN adduser --system --uid 4000 --disabled-password api-user && chown -R 4000:4000 /usr/local && chmod -R g+w /usr/local/
USER 4000
CMD /bin/bash -c "./log-enricher"