55 lines
1.7 KiB
Docker
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"
|