From e8319a08df775d0a8c4a4834b2dc5ec1aba10d93 Mon Sep 17 00:00:00 2001 From: Andrew Bastin Date: Wed, 21 Aug 2024 19:07:53 +0530 Subject: [PATCH] fix: issues with port binding in different container runtimes (#4279) --- aio-multiport-setup.Caddyfile | 5 ++ aio-subpath-access.Caddyfile | 5 ++ packages/hoppscotch-backend/backend.Caddyfile | 5 ++ packages/hoppscotch-selfhost-web/Caddyfile | 5 ++ .../selfhost-web.Caddyfile | 5 ++ packages/hoppscotch-sh-admin/Caddyfile | 5 ++ .../sh-admin-multiport-setup.Caddyfile | 5 ++ .../sh-admin-subpath-access.Caddyfile | 5 ++ prod.Dockerfile | 49 +++++++------------ 9 files changed, 57 insertions(+), 32 deletions(-) diff --git a/aio-multiport-setup.Caddyfile b/aio-multiport-setup.Caddyfile index 70ce1c1f2..05c659894 100644 --- a/aio-multiport-setup.Caddyfile +++ b/aio-multiport-setup.Caddyfile @@ -1,3 +1,8 @@ +{ + admin off + persist_config off +} + :3000 { try_files {path} / root * /site/selfhost-web diff --git a/aio-subpath-access.Caddyfile b/aio-subpath-access.Caddyfile index 46a8436e4..356a656a4 100644 --- a/aio-subpath-access.Caddyfile +++ b/aio-subpath-access.Caddyfile @@ -1,3 +1,8 @@ +{ + admin off + persist_config off +} + :3000 { respond 404 } diff --git a/packages/hoppscotch-backend/backend.Caddyfile b/packages/hoppscotch-backend/backend.Caddyfile index d5bd13244..523516b8b 100644 --- a/packages/hoppscotch-backend/backend.Caddyfile +++ b/packages/hoppscotch-backend/backend.Caddyfile @@ -1,3 +1,8 @@ +{ + admin off + persist_config off +} + :80 :3170 { reverse_proxy localhost:8080 } diff --git a/packages/hoppscotch-selfhost-web/Caddyfile b/packages/hoppscotch-selfhost-web/Caddyfile index dc930d195..cb292cbfb 100644 --- a/packages/hoppscotch-selfhost-web/Caddyfile +++ b/packages/hoppscotch-selfhost-web/Caddyfile @@ -1,3 +1,8 @@ +{ + admin off + persist_config off +} + :8080 { try_files {path} / root * /site diff --git a/packages/hoppscotch-selfhost-web/selfhost-web.Caddyfile b/packages/hoppscotch-selfhost-web/selfhost-web.Caddyfile index 54aceea78..59e76d81d 100644 --- a/packages/hoppscotch-selfhost-web/selfhost-web.Caddyfile +++ b/packages/hoppscotch-selfhost-web/selfhost-web.Caddyfile @@ -1,3 +1,8 @@ +{ + admin off + persist_config off +} + :80 :3000 { try_files {path} / root * /site/selfhost-web diff --git a/packages/hoppscotch-sh-admin/Caddyfile b/packages/hoppscotch-sh-admin/Caddyfile index dc930d195..2096c51a6 100644 --- a/packages/hoppscotch-sh-admin/Caddyfile +++ b/packages/hoppscotch-sh-admin/Caddyfile @@ -1,3 +1,8 @@ +{ + admin off + persist_config off +} + :8080 { try_files {path} / root * /site diff --git a/packages/hoppscotch-sh-admin/sh-admin-multiport-setup.Caddyfile b/packages/hoppscotch-sh-admin/sh-admin-multiport-setup.Caddyfile index 3ff07c6b3..cfcadc631 100644 --- a/packages/hoppscotch-sh-admin/sh-admin-multiport-setup.Caddyfile +++ b/packages/hoppscotch-sh-admin/sh-admin-multiport-setup.Caddyfile @@ -1,3 +1,8 @@ +{ + admin off + persist_config off +} + :80 :3100 { try_files {path} / root * /site/sh-admin-multiport-setup diff --git a/packages/hoppscotch-sh-admin/sh-admin-subpath-access.Caddyfile b/packages/hoppscotch-sh-admin/sh-admin-subpath-access.Caddyfile index ac6dd488b..5a6ad81a3 100644 --- a/packages/hoppscotch-sh-admin/sh-admin-subpath-access.Caddyfile +++ b/packages/hoppscotch-sh-admin/sh-admin-subpath-access.Caddyfile @@ -1,3 +1,8 @@ +{ + admin off + persist_config off +} + :80 :3100 { handle_path /admin* { root * /site/sh-admin-subpath-access diff --git a/prod.Dockerfile b/prod.Dockerfile index badd69fc8..d7190048f 100644 --- a/prod.Dockerfile +++ b/prod.Dockerfile @@ -27,11 +27,9 @@ FROM node:20-alpine3.19 AS backend RUN apk add caddy RUN npm install -g pnpm -RUN addgroup -S hoppgroup && adduser -S hoppuser -G hoppgroup - COPY --from=base_builder /usr/src/app/packages/hoppscotch-backend/backend.Caddyfile /etc/caddy/backend.Caddyfile -COPY --from=backend_builder --chown=hoppuser:hoppgroup --chmod=755 /dist/backend /dist/backend -COPY --from=base_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-backend/prod_run.mjs /dist/backend +COPY --from=backend_builder /dist/backend /dist/backend +COPY --from=base_builder /usr/src/app/packages/hoppscotch-backend/prod_run.mjs /dist/backend # Remove the env file to avoid backend copying it in and using it ENV PRODUCTION="true" @@ -39,8 +37,6 @@ ENV PORT=8080 ENV APP_PORT=${PORT} ENV DB_URL=${DATABASE_URL} -USER hoppuser - WORKDIR /dist/backend CMD ["node", "prod_run.mjs"] @@ -52,18 +48,14 @@ WORKDIR /usr/src/app/packages/hoppscotch-selfhost-web RUN pnpm run generate FROM caddy:2-alpine AS app -RUN addgroup -S hoppgroup && adduser -S hoppuser -G hoppgroup - -COPY --from=fe_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-selfhost-web/prod_run.mjs /site/prod_run.mjs -COPY --from=fe_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-selfhost-web/selfhost-web.Caddyfile /etc/caddy/selfhost-web.Caddyfile -COPY --from=fe_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-selfhost-web/dist/ /site/selfhost-web +COPY --from=fe_builder /usr/src/app/packages/hoppscotch-selfhost-web/prod_run.mjs /site/prod_run.mjs +COPY --from=fe_builder /usr/src/app/packages/hoppscotch-selfhost-web/selfhost-web.Caddyfile /etc/caddy/selfhost-web.Caddyfile +COPY --from=fe_builder /usr/src/app/packages/hoppscotch-selfhost-web/dist/ /site/selfhost-web RUN apk add nodejs npm RUN npm install -g @import-meta-env/cli -USER hoppuser - EXPOSE 80 EXPOSE 3000 @@ -78,20 +70,17 @@ RUN pnpm run build --outDir dist-multiport-setup RUN pnpm run build --outDir dist-subpath-access --base /admin/ FROM caddy:2-alpine AS sh_admin -RUN addgroup -S hoppgroup && adduser -S hoppuser -G hoppgroup -COPY --from=sh_admin_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-sh-admin/prod_run.mjs /site/prod_run.mjs -COPY --from=sh_admin_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-sh-admin/sh-admin-multiport-setup.Caddyfile /etc/caddy/sh-admin-multiport-setup.Caddyfile -COPY --from=sh_admin_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-sh-admin/sh-admin-subpath-access.Caddyfile /etc/caddy/sh-admin-subpath-access.Caddyfile -COPY --from=sh_admin_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-sh-admin/dist-multiport-setup /site/sh-admin-multiport-setup -COPY --from=sh_admin_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-sh-admin/dist-subpath-access /site/sh-admin-subpath-access +COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/prod_run.mjs /site/prod_run.mjs +COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/sh-admin-multiport-setup.Caddyfile /etc/caddy/sh-admin-multiport-setup.Caddyfile +COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/sh-admin-subpath-access.Caddyfile /etc/caddy/sh-admin-subpath-access.Caddyfile +COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/dist-multiport-setup /site/sh-admin-multiport-setup +COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/dist-subpath-access /site/sh-admin-subpath-access RUN apk add nodejs npm RUN npm install -g @import-meta-env/cli -USER hoppuser - EXPOSE 80 EXPOSE 3100 @@ -113,26 +102,22 @@ RUN apk add tini curl RUN npm install -g pnpm -RUN addgroup -S hoppgroup && adduser -S hoppuser -G hoppgroup - # Copy necessary files # Backend files -COPY --from=base_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-backend/backend.Caddyfile /etc/caddy/backend.Caddyfile -COPY --from=backend_builder --chown=hoppuser:hoppgroup --chmod=755 /dist/backend /dist/backend -COPY --from=base_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-backend/prod_run.mjs /dist/backend +COPY --from=base_builder /usr/src/app/packages/hoppscotch-backend/backend.Caddyfile /etc/caddy/backend.Caddyfile +COPY --from=backend_builder /dist/backend /dist/backend +COPY --from=base_builder /usr/src/app/packages/hoppscotch-backend/prod_run.mjs /dist/backend # FE Files -COPY --from=base_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/aio_run.mjs /usr/src/app/aio_run.mjs -COPY --from=fe_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-selfhost-web/dist /site/selfhost-web -COPY --from=sh_admin_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-sh-admin/dist-multiport-setup /site/sh-admin-multiport-setup -COPY --from=sh_admin_builder --chown=hoppuser:hoppgroup --chmod=755 /usr/src/app/packages/hoppscotch-sh-admin/dist-subpath-access /site/sh-admin-subpath-access +COPY --from=base_builder /usr/src/app/aio_run.mjs /usr/src/app/aio_run.mjs +COPY --from=fe_builder /usr/src/app/packages/hoppscotch-selfhost-web/dist /site/selfhost-web +COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/dist-multiport-setup /site/sh-admin-multiport-setup +COPY --from=sh_admin_builder /usr/src/app/packages/hoppscotch-sh-admin/dist-subpath-access /site/sh-admin-subpath-access COPY aio-multiport-setup.Caddyfile /etc/caddy/aio-multiport-setup.Caddyfile COPY aio-subpath-access.Caddyfile /etc/caddy/aio-subpath-access.Caddyfile RUN npm install -g @import-meta-env/cli -USER hoppuser - ENTRYPOINT [ "tini", "--" ] COPY --chmod=755 healthcheck.sh . HEALTHCHECK --interval=2s CMD /bin/sh ./healthcheck.sh