From 970597876bc7868b729bca0154fd25726bca9aa7 Mon Sep 17 00:00:00 2001 From: summersamara Date: Wed, 22 Nov 2023 20:57:50 +0100 Subject: [PATCH 1/2] Fix docker development: - Specify elixir version (1.15) in Dockerfile base image - Add npm package to Dockerfile - Fix vite server unreachable from outside the docker container: issue https://framagit.org/framasoft/mobilizon/-/issues/1225 --- Dockerfile | 5 +++-- docker-compose.yml | 1 + vite.config.js | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 749a0f8f..54ef7f26 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,10 @@ -FROM elixir:alpine +FROM elixir:1.15-alpine -RUN apk add --no-cache inotify-tools postgresql-client file make gcc libc-dev argon2 imagemagick cmake build-base libwebp-tools bash ncurses git python3 +RUN apk add --no-cache inotify-tools postgresql-client file make gcc libc-dev argon2 imagemagick cmake build-base libwebp-tools bash ncurses git python3 npm RUN mix local.hex --force && mix local.rebar --force WORKDIR /app EXPOSE 4000 +EXPOSE 5173 diff --git a/docker-compose.yml b/docker-compose.yml index 9b75aad9..bba75a6f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -19,6 +19,7 @@ services: - ".:/app" ports: - 4000:4000 + - 5173:5173 depends_on: - postgres environment: diff --git a/vite.config.js b/vite.config.js index 10d95904..446ba882 100644 --- a/vite.config.js +++ b/vite.config.js @@ -83,6 +83,9 @@ export default defineConfig(({ command }) => { return { plugins, build, + server: { + host: isDev ? "0.0.0.0" : "localhost", + }, resolve: { alias: { "@": path.resolve(__dirname, "./src"), From bfb7e3ca40d2ce71fdefc5fc07b3d21054f697b4 Mon Sep 17 00:00:00 2001 From: summersamara Date: Thu, 23 Nov 2023 15:33:31 +0100 Subject: [PATCH 2/2] introduce VITE_HOST env var and pass it to the node watcher vite --host --- .env.template | 3 +++ config/dev.exs | 4 +++- docker-compose.yml | 1 + vite.config.js | 3 --- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.env.template b/.env.template index 203f7e5c..e398060b 100644 --- a/.env.template +++ b/.env.template @@ -22,3 +22,6 @@ MOBILIZON_SMTP_PORT=25 MOBILIZON_SMTP_USERNAME=noreply@mobilizon.lan MOBILIZON_SMTP_PASSWORD=password MOBILIZON_SMTP_SSL=false + +# When using docker for development, VITE_HOST must be set to 0.0.0.0 +VITE_HOST=localhost diff --git a/config/dev.exs b/config/dev.exs index 1d3f99ee..429a8439 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -15,7 +15,9 @@ config :mobilizon, Mobilizon.Web.Endpoint, check_origin: false, watchers: [ node: [ - "node_modules/.bin/vite" + "node_modules/.bin/vite", + "--host", + System.get_env("VITE_HOST", "localhost") ] ] diff --git a/docker-compose.yml b/docker-compose.yml index bba75a6f..8723b6e7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -36,6 +36,7 @@ services: MOBILIZON_DATABASE_DBNAME: ${POSTGRES_DB} MOBILIZON_DATABASE_HOST: postgres MOBILIZON_DATABASE_PORT: ${POSTGRES_PORT} + VITE_HOST: ${VITE_HOST:-localhost} command: sh -c "mix phx.server" volumes: pgdata: diff --git a/vite.config.js b/vite.config.js index 446ba882..10d95904 100644 --- a/vite.config.js +++ b/vite.config.js @@ -83,9 +83,6 @@ export default defineConfig(({ command }) => { return { plugins, build, - server: { - host: isDev ? "0.0.0.0" : "localhost", - }, resolve: { alias: { "@": path.resolve(__dirname, "./src"),