Remix项目Docker构建中npm run build显示成功后挂起求助
Docker构建在输出构建成功提示后挂起的排查求助
我的Docker构建在输出构建成功的提示后出现挂起,无法继续后续步骤,且难以获取错误信息,排查受阻。本地执行vite build可正常完成,本次本地构建是为了复现Heroku部署时遇到的相同问题。
已尝试的操作:
- 更新Docker
- 重启容器、重启电脑
- 回滚至可正常运行的代码版本
- 修改Dockerfile添加调试步骤
- 等待超过一小时确认无法自动恢复
构建日志
docker build --no-cache . [+] Building 1287.9s (10/12) docker:desktop-linux => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 512B 0.0s => [internal] load metadata for docker.io/library/node:18-alpine 0.8s => [auth] library/node:pull token for registry-1.docker.io 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 66B 0.0s => [1/7] FROM docker.io/library/node:18-alpine@sha256:a25c1e4ecc284 0.0s => [internal] load build context 0.1s => => transferring context: 160.43kB 0.1s => CACHED [2/7] WORKDIR /app 0.0s => [3/7] COPY . . 0.2s => [4/7] RUN npm install --omit=dev 16.1s => [5/7] RUN npm remove @shopify/app @shopify/cli 1.4s => [6/7] RUN npm run build 1269.3s => => # kB │ gzip: 43.31 kB => => # build/client/assets/context-BlhKCYcd.js 154.68 => => # kB │ gzip: 17.73 kB => => # build/client/assets/app.textEditor._blog._id-BM8eDdfO.js 314.49 => => # kB │ gzip: 106.13 kB => => # ✓ built in 3.25s
Dockerfile
FROM node:18-alpine WORKDIR /app COPY . . # Install dependencies with more verbose output RUN npm install --omit=dev --verbose # Remove Shopify CLI (as you're doing) RUN npm remove @shopify/app @shopify/cli --verbose # Build step RUN npm run build # Add debugging steps RUN echo "Listing build output directory:" RUN ls -la build/ # Generate Prisma client separately from start script RUN npx prisma generate # Start command with more visibility CMD ["sh", "-c", "echo 'Starting app...' && npm run start"]
package.json
{ "name": "devsandbox2", "private": true, "scripts": { "build": "vite build && vite build --ssr", "dev": "shopify app dev", "config:link": "shopify app config link", "generate": "shopify app generate", "deploy": "shopify app deploy", "config:use": "shopify app config use", "env": "shopify app env", "start": "remix-serve ./build/server/index.js", "docker-start": "npm run start", "docker-setup": "prisma generate && prisma migrate deploy", "setup": "prisma generate && prisma migrate deploy", "lint": "eslint --cache --cache-location ./node_modules/.cache/eslint .", "shopify": "shopify", "prisma": "prisma", "graphql-codegen": "graphql-codegen", "vite": "vite" }, "type": "module", "dependencies": { "@prisma/client": "^5.11.0", "@remix-run/dev": "^2.7.1", "@remix-run/node": "^2.7.1", "@remix-run/react": "^2.7.1", "@remix-run/serve": "^2.7.1", "@shopify/app-bridge-react": "^4.1.3", "@shopify/polaris": "^12.27.0", "@shopify/shopify-api": "^10.0.0", "@shopify/shopify-app-remix": "^2.8.2", "@shopify/shopify-app-session-storage-prisma": "^4.0.5", "@tinymce/tinymce-react": "^5.1.1", "@types/he": "^1.2.3", "form-data": "^4.0.0", "he": "^1.2.0", "image-extensions": "^1.1.0", "is-url": "^1.2.4", "isbot": "^5.1.0", "lodash.debounce": "^4.0.8", "nanoid": "^5.0.7", "next": "^14.2.5", "prisma": "^5.11.0", "react": "^18.2.0", "react-dom": "^18.2.0", "slate": "^0.103.0", "slate-history": "^0.109.0", "slate-hyperscript": "^0.100.0", "slate-react": "^0.107.1", "styled-components": "^6.1.12", "vite-tsconfig-paths": "^4.3.1" }, "devDependencies": { "@remix-run/eslint-config": "^2.7.1", "@shopify/api-codegen-preset": "^0.0.7", "@shopify/app-bridge-types": "^0.0.11", "@types/eslint": "^8.40.0", "@types/is-url": "^1.2.32", "@types/node": "^20.6.3", "@types/react": "^18.2.31", "@types/react-dom": "^18.2.14", "eslint": "^8.42.0", "eslint-config-prettier": "^9.1.0", "prettier": "^3.2.4", "typescript": "^5.2.2", "vite": "^5.1.3" }, "workspaces": [ "extensions/*" ], "trustedDependencies": [ "@shopify/plugin-cloudflare" ], "resolutions": { "undici": "6.13.0" }, "overrides": { "undici": "6.13.0" }, "author": "beckett" }
恳请提供排查思路或可能的原因。
内容的提问来源于stack exchange,提问作者Beckett
相关产品推荐
相关产品推荐

