Browse Source

Merge pull request #9280 from weseek/feat/135772-155547-pdf-converter-tsed-devcontainer

Feat/135772 155547 pdf converter tsed devcontainer
Yuki Takei 1 year ago
parent
commit
8420213f55

+ 6 - 3
.devcontainer/devcontainer.json → .devcontainer/app/devcontainer.json

@@ -2,8 +2,8 @@
 // README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
 // README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
 {
 {
   "name": "GROWI-Dev",
   "name": "GROWI-Dev",
-  "dockerComposeFile": "compose.yml",
-  "service": "node",
+  "dockerComposeFile": "../compose.yml",
+  "service": "app",
   "workspaceFolder": "/workspace/growi",
   "workspaceFolder": "/workspace/growi",
 
 
   "features": {
   "features": {
@@ -16,7 +16,7 @@
   // "forwardPorts": [],
   // "forwardPorts": [],
 
 
   // Use 'postCreateCommand' to run commands after the container is created.
   // Use 'postCreateCommand' to run commands after the container is created.
-  "postCreateCommand": "/bin/bash ./.devcontainer/postCreateCommand.sh",
+  "postCreateCommand": "/bin/bash ./.devcontainer/app/postCreateCommand.sh",
 
 
   // Configure tool-specific properties.
   // Configure tool-specific properties.
   "customizations": {
   "customizations": {
@@ -37,6 +37,9 @@
         "vitest.explorer",
         "vitest.explorer",
         "ms-playwright.playwright"
         "ms-playwright.playwright"
       ],
       ],
+      "settings": {
+        "terminal.integrated.defaultProfile.linux": "bash"
+      }
     }
     }
   },
   },
 
 

+ 0 - 0
.devcontainer/postCreateCommand.sh → .devcontainer/app/postCreateCommand.sh


+ 13 - 1
.devcontainer/compose.yml

@@ -1,5 +1,5 @@
 services:
 services:
-  node:
+  app:
     image: mcr.microsoft.com/devcontainers/base:ubuntu
     image: mcr.microsoft.com/devcontainers/base:ubuntu
     volumes:
     volumes:
       - ..:/workspace/growi:delegated
       - ..:/workspace/growi:delegated
@@ -7,6 +7,7 @@ services:
       - node_modules:/workspace/growi/node_modules
       - node_modules:/workspace/growi/node_modules
       - buildcache_app:/workspace/growi/apps/app/.next
       - buildcache_app:/workspace/growi/apps/app/.next
       - ../../growi-docker-compose:/workspace/growi-docker-compose:delegated
       - ../../growi-docker-compose:/workspace/growi-docker-compose:delegated
+      - page_bulk_export_tmp:/tmp/page-bulk-export
     tty: true
     tty: true
 
 
   mongo:
   mongo:
@@ -40,7 +41,18 @@ services:
       - /usr/share/elasticsearch/data
       - /usr/share/elasticsearch/data
       - ../../growi-docker-compose/elasticsearch/v8/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
       - ../../growi-docker-compose/elasticsearch/v8/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
 
 
+  pdf-converter:
+    # enabling devcontainer 'features' was not working for secondary devcontainer (https://github.com/devcontainers/features/issues/1175)
+    image: mcr.microsoft.com/vscode/devcontainers/javascript-node:0-20
+    volumes:
+      - ..:/workspace/growi:delegated
+      - pnpm-store:/workspace/growi/.pnpm-store
+      - node_modules:/workspace/growi/node_modules
+      - page_bulk_export_tmp:/tmp/page-bulk-export
+    tty: true
+
 volumes:
 volumes:
   pnpm-store:
   pnpm-store:
   node_modules:
   node_modules:
   buildcache_app:
   buildcache_app:
+  page_bulk_export_tmp:

+ 29 - 0
.devcontainer/pdf-converter/devcontainer.json

@@ -0,0 +1,29 @@
+{
+  "name": "GROWI-PDF-Converter",
+  "dockerComposeFile": "../compose.yml",
+  "service": "pdf-converter",
+  "workspaceFolder": "/workspace/growi",
+
+  // Use 'forwardPorts' to make a list of ports inside the container available locally.
+  // "forwardPorts": [],
+
+  // Use 'postCreateCommand' to run commands after the container is created.
+  "postCreateCommand": "/bin/bash ./.devcontainer/pdf-converter/postCreateCommand.sh",
+
+  // Configure tool-specific properties.
+  "customizations": {
+    "vscode": {
+      "extensions": [
+        "dbaeumer.vscode-eslint",
+        "mhutchie.git-graph",
+        "eamodio.gitlens"
+      ],
+      "settings": {
+        "terminal.integrated.defaultProfile.linux": "bash"
+      }
+    }
+  }
+
+  // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
+  // "remoteUser": "root"
+}

+ 17 - 0
.devcontainer/pdf-converter/postCreateCommand.sh

@@ -0,0 +1,17 @@
+# Instal additional packages
+sudo apt update
+sudo apt-get install -y --no-install-recommends \
+  chromium locales fonts-ipafont fonts-ipaexfont fonts-ipafont-gothic fonts-ipafont-mincho
+sudo apt-get clean -y
+
+# Setup pnpm
+SHELL=bash pnpm setup
+eval "$(cat /home/node/.bashrc)"
+# Update pnpm
+pnpm i -g pnpm
+
+# Install turbo
+pnpm install turbo --global
+
+# Install dependencies
+turbo run bootstrap

+ 1 - 1
apps/pdf-converter/package.json

@@ -6,7 +6,7 @@
   "license": "MIT",
   "license": "MIT",
   "private": true,
   "private": true,
   "scripts": {
   "scripts": {
-    "dev:pdf-converter": "nodemon --watch \"src/**/*.ts\" --ignore \"node_modules/**/*\" --exec ts-node -r \"dotenv-flow/config\" src/index.ts",
+    "dev": "nodemon --watch \"src/**/*.ts\" --ignore \"node_modules/**/*\" --exec ts-node -r \"dotenv-flow/config\" src/index.ts",
     "lint": "pnpm eslint **/*.{js,ts}",
     "lint": "pnpm eslint **/*.{js,ts}",
     "gen:client-code": "tsed run generate-swagger --output ./specs && orval",
     "gen:client-code": "tsed run generate-swagger --output ./specs && orval",
     "build": "pnpm gen:client-code && tsc -p tsconfig.build.json"
     "build": "pnpm gen:client-code && tsc -p tsconfig.build.json"