Просмотр исходного кода

add pdf-converter devcontainer

Futa Arai 1 год назад
Родитель
Сommit
17efb97678

+ 0 - 0
.devcontainer/Dockerfile → .devcontainer/app/Dockerfile


+ 2 - 2
.devcontainer/devcontainer.json → .devcontainer/app/devcontainer.json

@@ -3,8 +3,8 @@
 // If you want to run as a non-root user in the container, see .devcontainer/docker-compose.yml.
 {
   "name": "GROWI-Dev",
-  "dockerComposeFile": "docker-compose.yml",
-  "service": "node",
+  "dockerComposeFile": "../docker-compose.yml",
+  "service": "app",
   "workspaceFolder": "/workspace/growi",
 
   // Set *default* container specific settings.json values on container create.

+ 20 - 3
.devcontainer/docker-compose.yml

@@ -3,9 +3,8 @@
 # Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
 #-------------------------------------------------------------------------------------------------------------
 
-version: '3'
 services:
-  node:
+  app:
     # Uncomment the next line to use a non-root user for all processes. You can also
     # simply use the "remoteUser" property in devcontainer.json if you just want VS Code
     # and its sub-processes (terminals, tasks, debugging) to execute as the user. On Linux,
@@ -15,7 +14,7 @@ services:
 
     build:
       context: .
-      dockerfile: Dockerfile
+      dockerfile: ./app/Dockerfile
 
     volumes:
       - ..:/workspace/growi:delegated
@@ -24,6 +23,7 @@ services:
       - node_modules_slackbot-proxy:/workspace/growi/apps/slackbot-proxy/node_modules
       - buildcache_app:/workspace/growi/apps/app/.next
       - ../../growi-docker-compose:/workspace/growi-docker-compose:delegated
+      - page_bulk_export_tmp:/tmp/page-bulk-export
 
     tty: true
 
@@ -58,8 +58,25 @@ services:
       - /usr/share/elasticsearch/data
       - ../../growi-docker-compose/elasticsearch/v8/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
 
+  pdf-converter:
+    user: node
+    build:
+      context: .
+      dockerfile: ./pdf-converter/Dockerfile
+    restart: unless-stopped
+    ports:
+      - 3010
+    volumes:
+      - ..:/workspace/growi:delegated
+      - node_modules:/workspace/growi/node_modules
+      - node_modules_pdf_converter:/workspace/growi/apps/pdf-converter/node_modules
+      - page_bulk_export_tmp:/tmp/page-bulk-export
+    tty: true
+
 volumes:
   node_modules:
   node_modules_app:
   node_modules_slackbot-proxy:
+  node_modules_pdf_converter:
   buildcache_app:
+  page_bulk_export_tmp:

+ 38 - 0
.devcontainer/pdf-converter/Dockerfile

@@ -0,0 +1,38 @@
+#-------------------------------------------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
+#-------------------------------------------------------------------------------------------------------------
+
+FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:1-20
+
+# The node image includes a non-root user with sudo access. Use the
+# "remoteUser" property in devcontainer.json to use it. On Linux, update
+# these values to ensure the container user's UID/GID matches your local values.
+# See https://aka.ms/vscode-remote/containers/non-root-user for details.
+ARG USERNAME=node
+ARG USER_UID=1000
+ARG USER_GID=$USER_UID
+
+ENV LANG=ja_JP.UTF-8
+
+RUN mkdir -p /workspace/growi/node_modules
+RUN mkdir -p /workspace/growi/apps/pdf-converter/node_modules
+
+# [Optional] Update UID/GID if needed
+RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then \
+        groupmod --gid $USER_GID $USERNAME \
+        && usermod --uid $USER_UID --gid $USER_GID $USERNAME; \
+    fi
+RUN chown -R $USER_UID:$USER_GID /home/$USERNAME /workspace;
+
+# Uncomment to default to non-root user
+# USER $USER_UID
+
+RUN apt-get update \
+    && apt-get -y install --no-install-recommends \
+    chromium locales fonts-ipafont fonts-ipaexfont fonts-ipafont-gothic fonts-ipafont-mincho git-lfs && \
+    echo "ja_JP UTF-8" > /etc/locale.gen && locale-gen
+
+RUN yarn global add turbo
+
+RUN git config --global --add safe.directory /workspace/growi

+ 21 - 0
.devcontainer/pdf-converter/devcontainter.json

@@ -0,0 +1,21 @@
+{
+  "name": "GROWI-PDF-Converter",
+  "dockerComposeFile": "../docker-compose.yml",
+  "service": "pdf-converter",
+  "workspaceFolder": "/workspace/growi",
+  "customizations": {
+    "vscode": {
+      "extensions": [
+        "dbaeumer.vscode-eslint",
+        "mhutchie.git-graph",
+        "eamodio.gitlens"
+      ],
+      "settings": {
+        "terminal.integrated.defaultProfile.linux": "bash"
+      }
+    }
+  },
+  "forwardPorts": [3004],
+  "postCreateCommand": "git-lfs pull",
+  "remoteUser": "node"
+}

+ 4 - 0
turbo.json

@@ -72,6 +72,10 @@
       ],
       "outputLogs": "new-only"
     },
+    "dev:pdf-converter": {
+      "cache": false,
+      "persistent": true
+    },
 
     "watch": {
       "outputs": ["dist/**"],