Build local product stack with Vault-managed secrets (#42)
This commit is contained in:
1 parent
8e2ef7aa88
commit
184a3be413
32 files changed
+1191
-10
No files matched your search
@@ -0,0 +1,21 @@
|
||||
ARG GO_IMAGE
|
||||
ARG VAULT_IMAGE
|
||||
FROM ${GO_IMAGE} AS build
|
||||
RUN apk add --no-cache protobuf protobuf-dev make
|
||||
WORKDIR /src
|
||||
COPY Makefile ./
|
||||
COPY backend ./backend
|
||||
RUN make generate-notifications
|
||||
ARG MODULE
|
||||
WORKDIR /src/backend/${MODULE}
|
||||
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg/mod CGO_ENABLED=0 go build -trimpath -o /out/service .
|
||||
|
||||
FROM ${VAULT_IMAGE}
|
||||
USER root
|
||||
COPY --from=build /out/service /usr/local/bin/service
|
||||
COPY dev/start-service.sh /usr/local/bin/start-service
|
||||
COPY dev/config /etc/sxchnge
|
||||
COPY backend/notifications/templates.example.json /etc/sxchnge/templates.json
|
||||
RUN mkdir -p /run/sxchnge && chown 100:1000 /run/sxchnge
|
||||
USER 100:1000
|
||||
ENTRYPOINT ["vault", "agent", "-config=/etc/agent/config.hcl"]
|
||||
@@ -0,0 +1,17 @@
|
||||
ARG UBUNTU_IMAGE
|
||||
ARG NGINX_IMAGE
|
||||
FROM ${UBUNTU_IMAGE} AS build
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl git unzip xz-utils libglu1-mesa && rm -rf /var/lib/apt/lists/*
|
||||
ARG FLUTTER_VERSION
|
||||
ARG FLUTTER_COMMIT
|
||||
RUN git clone --depth 1 --branch "${FLUTTER_VERSION}" https://github.com/flutter/flutter.git /opt/flutter && test "$(git -C /opt/flutter rev-parse HEAD)" = "${FLUTTER_COMMIT}"
|
||||
ENV PATH="/opt/flutter/bin:${PATH}"
|
||||
RUN flutter config --no-analytics && flutter precache --web
|
||||
WORKDIR /src
|
||||
COPY frontend ./frontend
|
||||
WORKDIR /src/frontend/app
|
||||
ARG FRONTEND_URL=https://localhost:5126
|
||||
RUN flutter pub get && flutter gen-l10n && flutter build web --no-wasm-dry-run --dart-define=SXCHNGE_API_URL=${FRONTEND_URL}/api/v1 --dart-define=SXCHNGE_CLIENT_ID=sxchnge-local-web
|
||||
FROM ${NGINX_IMAGE}
|
||||
COPY dev/config/nginx.conf /etc/nginx/conf.d/default.conf
|
||||
COPY --from=build /src/frontend/app/build/web /usr/share/nginx/html
|
||||
@@ -0,0 +1,10 @@
|
||||
ARG NATS_IMAGE
|
||||
ARG VAULT_IMAGE
|
||||
FROM ${NATS_IMAGE} AS nats
|
||||
FROM ${VAULT_IMAGE}
|
||||
USER root
|
||||
COPY --from=nats /nats-server /usr/local/bin/nats-server
|
||||
COPY dev/start-nats.sh /usr/local/bin/start-nats
|
||||
RUN mkdir -p /data /run/sxchnge && chown -R 100:1000 /data /run/sxchnge
|
||||
USER 100:1000
|
||||
ENTRYPOINT ["vault", "agent", "-config=/etc/agent/config.hcl"]
|
||||
Reference in new issue
Block a user