store: move badge service app to store service

This commit is contained in:
shum committed 2026-10-21 12:27:02 +00:00
1 parent 4aaeadd591
commit a454ba63ea
152 files changed
+464 -462

No files matched your search

@@ -12,9 +12,9 @@ ARG NODE=24
FROM node:${NODE}-bookworm-slim AS web
WORKDIR /web
COPY apps/simplex-badge-service/web/package.json apps/simplex-badge-service/web/package-lock.json ./
COPY apps/simplex-store-service/web/package.json apps/simplex-store-service/web/package-lock.json ./
RUN npm ci
COPY apps/simplex-badge-service/web ./
COPY apps/simplex-store-service/web ./
RUN npm run build
FROM ubuntu:${UBUNTU} AS build
@@ -44,7 +44,7 @@ COPY scripts/cabal.project.local.linux ./cabal.project.local
COPY src ./src
# Excluding web/ keeps a webapp edit from invalidating this layer and re-running the cabal build,
# and the binary does not depend on it.
COPY --exclude=web apps/simplex-badge-service ./apps/simplex-badge-service
COPY --exclude=web apps/simplex-store-service ./apps/simplex-store-service
# The store and build tree are cache mounts rather than layers, so the binary is copied out inside
# the same RUN because dist-newstyle does not exist in the resulting layer.
@@ -52,10 +52,10 @@ RUN --mount=type=cache,target=/root/.cabal \
--mount=type=cache,target=/src/dist-newstyle \
set -eu; \
cabal update; \
cabal build --flags="+client_postgres" exe:simplex-badge-service; \
cabal build --flags="+client_postgres" exe:simplex-store-service; \
mkdir -p /out; \
cp "$(cabal list-bin --flags="+client_postgres" exe:simplex-badge-service)" /out/simplex-badge-service; \
strip /out/simplex-badge-service
cp "$(cabal list-bin --flags="+client_postgres" exe:simplex-store-service)" /out/simplex-store-service; \
strip /out/simplex-store-service
FROM ubuntu:${UBUNTU} AS runtime
@@ -80,7 +80,7 @@ RUN if existing_user=$(getent passwd ${USER_UID} | cut -d: -f1) && [ -n "${exist
groupadd -g ${USER_GID} badge && \
useradd -u ${USER_UID} -g ${USER_GID} -m -d /home/badge badge
COPY --from=build /out/simplex-badge-service /usr/local/bin/simplex-badge-service
COPY --from=build /out/simplex-store-service /usr/local/bin/simplex-store-service
COPY --from=web /web/dist /srv/web
USER badge
@@ -93,7 +93,7 @@ EXPOSE 8080
# The flags live in CMD so `docker compose run` can replace them while dumb-init still forwards
# signals.
ENTRYPOINT ["dumb-init", "--", "simplex-badge-service"]
ENTRYPOINT ["dumb-init", "--", "simplex-store-service"]
# Without --yes-migrate the service blocks on stdin at every schema change, and a container has no
# console to answer.
CMD ["-d", "postgresql://simplex@127.0.0.1:5432/badge_service", "--create-schema", "--yes-migrate", "--service-config", "/etc/simplex-badge-service/badge_service.ini"]
CMD ["-d", "postgresql://simplex@127.0.0.1:5432/badge_service", "--create-schema", "--yes-migrate", "--service-config", "/etc/simplex-store-service/store_service.ini"]
@@ -14,17 +14,17 @@ scripts/*
!apps
apps/*
!apps/simplex-badge-service
!apps/simplex-store-service
# Build output, caches, local state, and anything holding a secret. The ini is
# mounted at run time and must never be baked into an image: it holds the issuer
# secret, and with [btcpay] the API key and webhook secret too.
badge_service.ini
store_service.ini
**/dist
**/dist-newstyle
**/node_modules
**/*.db
**/*.db-*
apps/simplex-badge-service/test-fixtures
apps/simplex-badge-service/web-traversal-test
apps/simplex-badge-service/web/build
apps/simplex-store-service/test-fixtures
apps/simplex-store-service/web-traversal-test
apps/simplex-store-service/web/build
@@ -1,9 +1,9 @@
services:
badge-service:
image: simplex-badge-service:latest
store-service:
image: simplex-store-service:latest
build:
context: ../..
dockerfile: scripts/badge-service/Dockerfile
dockerfile: scripts/store-service/Dockerfile
args:
USER_UID: ${USER_UID:-1000}
USER_GID: ${USER_GID:-1000}
@@ -17,8 +17,8 @@ services:
- "--create-schema"
- "--yes-migrate"
- "--service-config"
- "/etc/simplex-badge-service/badge_service.ini"
- "/etc/simplex-store-service/store_service.ini"
volumes:
- ./badge_service.ini:/etc/simplex-badge-service/badge_service.ini:ro
- ./store_service.ini:/etc/simplex-store-service/store_service.ini:ro
- ./web:/srv/webapp
stop_grace_period: 10s