diff --git a/.dockerignore b/.dockerignore index dbd5eff8..8f356df9 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,6 +6,8 @@ lib/ node_modules/ electron_app/ karma-reports/ +.pnp.cjs +.pnp.loader.mjs .idea/ .tmp/ config.json* diff --git a/Dockerfile b/Dockerfile index aa529b52..70650b0b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,8 @@ # Builder FROM node:lts as builder LABEL org.opencontainers.image.url=https://github.com/Awesome-Technologies/synapse-admin org.opencontainers.image.source=https://github.com/Awesome-Technologies/synapse-admin +# Base path for synapse admin +ARG BASE_PATH=./ WORKDIR /src @@ -13,7 +15,7 @@ COPY package.json .yarnrc.yml yarn.lock ./ RUN yarn config set enableTelemetry 0 && yarn install --immutable --network-timeout=300000 COPY . /src -RUN yarn build +RUN yarn build --base=$BASE_PATH # App FROM nginx:stable-alpine diff --git a/README.md b/README.md index 5c144b52..122a3130 100644 --- a/README.md +++ b/README.md @@ -77,8 +77,10 @@ You have three options: hostname: synapse-admin build: context: https://github.com/Awesome-Technologies/synapse-admin.git - # args: + args: + - BUILDKIT_CONTEXT_KEEP_GIT_DIR=1 # - NODE_OPTIONS="--max_old_space_size=1024" + # - BASE_PATH="/synapse-admin" ports: - "8080:80" restart: unless-stopped @@ -122,7 +124,13 @@ services: ### Serving Synapse-Admin on a different path -We do not support directly changing the path where Synapse-Admin is served. Instead please use a reverse proxy if you need to move Synapse-Admin to a different base path. If you want to serve multiple applications with different paths on the same domain, you need a reverse proxy anyway. +The path prefix where synapse-admin is served can only be changed during the build step. + +If you downloaded the source code, use `yarn build --base=/my-prefix` to set a path prefix. + +If you want to build your own Docker container, use the `BASE_PATH` argument. + +We do not support directly changing the path where Synapse-Admin is served in the pre-built Docker container. Instead please use a reverse proxy if you need to move Synapse-Admin to a different base path. If you want to serve multiple applications with different paths on the same domain, you need a reverse proxy anyway. Example for Traefik: @@ -138,20 +146,17 @@ services: - 443:443 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - labels: - - "traefik.http.middlewares.admin.redirectregex.regex:^(.*)/admin/?" - - "traefik.http.middlewares.admin.redirectregex.replacement:$${1}/admin/" - - "traefik.http.middlewares.admin_path.replacepathregex.regex:^/admin/(.*)" - - "traefik.http.middlewares.admin_path.replacepathregex.replacement:/$1" synapse-admin: image: awesometechnologies/synapse-admin:latest restart: unless-stopped labels: - "traefik.enable=true" - - "traefik.http.routers.synapse-admin.priority=3" - "traefik.http.routers.synapse-admin.rule=Host(`example.com`)&&PathPrefix(`/admin`)" - "traefik.http.routers.synapse-admin.middlewares=admin,admin_path" + - "traefik.http.middlewares.admin.redirectregex.regex=^(.*)/admin/?" + - "traefik.http.middlewares.admin.redirectregex.replacement=$${1}/admin/" + - "traefik.http.middlewares.admin_path.stripprefix.prefixes=/admin" ``` ## Screenshots diff --git a/docker-compose.yml b/docker-compose.yml index e7b91ce7..e599a2f5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,10 +10,12 @@ services: # replace the context definition with this: # context: https://github.com/Awesome-Technologies/synapse-admin.git - # args: - # if you're building on an architecture other than amd64, make sure - # to define a maximum ram for node. otherwise the build will fail. - # - NODE_OPTIONS="--max_old_space_size=1024" + # args: + # - BUILDKIT_CONTEXT_KEEP_GIT_DIR=1 + # if you're building on an architecture other than amd64, make sure + # to define a maximum ram for node. otherwise the build will fail. + # - NODE_OPTIONS="--max_old_space_size=1024" + # - BASE_PATH="/synapse-admin" ports: - "8080:80" restart: unless-stopped