From 0edde7dbfa261fba6d2ef7eb9655c4b36b82aa99 Mon Sep 17 00:00:00 2001 From: Grzegorz Godlewski Date: Sun, 18 Aug 2024 19:05:03 +0200 Subject: [PATCH] Fix docker render See: #390 --- .env.example | 2 -- .../action/ActionRunnerContainer.ts | 22 +++++------- website/docs/developer-guide.md | 35 +++++++++++-------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/.env.example b/.env.example index d982ae7b..0f08e425 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,4 @@ CLIENT_ID= CLIENT_SECRET= -VOLUME_DATA=/srv/wikigdrive -VOLUME_PREVIEW=/srv/www DOMAIN=http://localhost:3000 diff --git a/src/containers/action/ActionRunnerContainer.ts b/src/containers/action/ActionRunnerContainer.ts index b3f0ef57..5f332b4d 100644 --- a/src/containers/action/ActionRunnerContainer.ts +++ b/src/containers/action/ActionRunnerContainer.ts @@ -183,6 +183,9 @@ export class ActionRunnerContainer extends Container { result = await docker.run(process.env.ACTION_IMAGE, [`/steps/step_${step.uses}`], writable, { HostConfig: { + Binds: [ // Unlike Mounts those are created if not existing in the host + `${process.env.VOLUME_PREVIEW}/${driveId}/${themeId}:/site/public:rw` + ], Mounts: [ { Source: `${process.env.VOLUME_DATA}/${driveId}_transform`, @@ -194,11 +197,6 @@ export class ActionRunnerContainer extends Container { Target: '/site/content', Type: 'bind' }, - { - Source: `${process.env.VOLUME_PREVIEW}/${driveId}/${themeId}`, - Target: '/site/public', - Type: 'bind' - }, { Source: `${process.env.VOLUME_DATA}/${driveId}/tmp_dir`, Target: '/site/tmp_dir', @@ -222,7 +220,7 @@ export class ActionRunnerContainer extends Container { } else { const env = ['render_hugo', 'exec', 'commit_branch'].includes(step.uses) ? Object.assign({ CONFIG_TOML: '/site/tmp_dir/config.toml', - BASE_URL: `${process.env.DOMAIN}/preview/${driveId}/_manual/`, + BASE_URL: `${process.env.DOMAIN}/preview/${driveId}/`, GIT_AUTHOR_NAME: committer.name, GIT_AUTHOR_EMAIL: committer.email, GIT_COMMITTER_NAME: committer.name, @@ -234,15 +232,18 @@ export class ActionRunnerContainer extends Container { -v "${process.env.VOLUME_DATA}/${driveId}_transform:/repo" \\ -v "${process.env.VOLUME_DATA}/${driveIdTransform}:/site" \\ -v "${process.env.VOLUME_DATA}${contentDir}:/site/content" \\ - -v "${process.env.VOLUME_PREVIEW}/${driveId}/_manual:/site/public" \\ + -v "${process.env.VOLUME_PREVIEW}/${driveId}:/site/public" \\ -v "${process.env.VOLUME_DATA}/${driveId}/tmp_dir:/site/tmp_dir" \\ - --mount type=tmpfs,destination=/site/resources" \\ + --mount "type=tmpfs,destination=/site/resources" \\ ${Object.keys(env).map(key => `--env ${key}="${env[key]}"`).join(' ')} \\ ${process.env.ACTION_IMAGE} /steps/step_${step.uses} `); result = await docker.run(process.env.ACTION_IMAGE, [`/steps/step_${step.uses}`], writable, { HostConfig: { + Binds: [ // Unlike Mounts those are created if not existing in the host + `${process.env.VOLUME_PREVIEW}/${driveId}/${themeId}:/site/public:rw` + ], Mounts: [ { Source: `${process.env.VOLUME_DATA}/${driveId}_transform`, @@ -259,11 +260,6 @@ export class ActionRunnerContainer extends Container { Target: '/site/content', Type: 'bind' }, - { - Source: `${process.env.VOLUME_PREVIEW}/${driveId}/_manual`, - Target: '/site/public', - Type: 'bind' - }, { Source: `${process.env.VOLUME_DATA}/${driveId}/tmp_dir`, Target: '/site/tmp_dir', diff --git a/website/docs/developer-guide.md b/website/docs/developer-guide.md index dd8c6bf5..b66cfa32 100644 --- a/website/docs/developer-guide.md +++ b/website/docs/developer-guide.md @@ -44,10 +44,13 @@ wikigdrive --workdir ~/wikigdrive --service_account ~/workspaces/mieweb/wikigdri ## Running locally with docker ``` +export VOLUME_DATA=~/wikigdrive +export VOLUME_PREVIEW=~/wikigdrive_html + # Create some dir for wikigdrive data -mkdir ~/wikigdrive +mkdir -p $VOLUME_DATA # Create some dir for wikigdrive rendered html files -mkdir ~/wikigdrive_html/docs -p +mkdir -p $VOLUME_PREVIEW # Running zipkin is an option docker run --name zipkin -d -p 9411:9411 --restart unless-stopped openzipkin/zipkin @@ -59,7 +62,7 @@ docker build -t wgd-action-runner apps/wgd-action-runner docker run \ -v ~/workspaces/mieweb/wikiGDrive/hugo:/site \ -v ~/workspaces/mieweb/wikiGDrive/website:/website \ - -v ~/wikigdrive_html/docs:/dist/hugo \ + -v $VOLUME_PREVIEW/docs:/dist/hugo \ --env CONFIG_TOML="/site/config/_default/config.toml" --env BASE_URL="https://localhost:3000" \ wgd-action-runner /steps/step_render_hugo @@ -67,17 +70,21 @@ docker run \ docker build -t wikigdrive . # Run wikigdrive -docker run --rm --user=$(id -u) -it \ - -v ~/wikigdrive:/srv/wikigdrive \ - -v ~/wikigdrive_html/docs:/usr/src/app/dist/hugo \ - -v ~/workspaces/mieweb/wikigdrive-with-service-account.json:/service_account.json \ - -v ~/workspaces/mieweb/wikiGDrive:/usr/src/app \ - -v /var/run/docker.sock:/var/run/docker.sock \ - --link zipkin:zipkin \ - --publish 127.0.0.1:3000:3000 \ - --publish 127.0.0.1:24678:24678 \ - wikigdrive \ - ./src/wikigdrive.sh --watch-path /usr/src/app/src --service_account /service_account.json --share_email mie-docs-wikigdrive@wikigdrive.iam.gserviceaccount.com --workdir /srv/wikigdrive server 3000 +docker run --rm --user=$(id -u):$(getent group docker | cut -d: -f3) -it \ + -v $VOLUME_DATA:/srv/wikigdrive \ + -v $VOLUME_PREVIEW:$VOLUME_PREVIEW \ + -v $VOLUME_PREVIEW/docs:/usr/src/app/dist/hugo \ + -v ~/workspaces/mieweb/wikigdrive-with-service-account.json:/service_account.json \ + -v ~/workspaces/mieweb/wikiGDrive:/usr/src/app \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -e VOLUME_DATA=$VOLUME_DATA \ + -e VOLUME_PREVIEW=$VOLUME_PREVIEW \ + --link zipkin:zipkin \ + --publish 127.0.0.1:3000:3000 \ + --publish 127.0.0.1:24678:24678 \ + --name wikigdrive-develop \ + wikigdrive \ + ./src/wikigdrive.sh --watch-path /usr/src/app/src --service_account /service_account.json --share_email mie-docs-wikigdrive@wikigdrive.iam.gserviceaccount.com --workdir /srv/wikigdrive server 3000 # Stop wikigdrive docker rm -f wikigdrive