我正试图为一个苗条的应用程序创建一个码头形象。我使用的svelte应用程序只是启动了TypeScript的svelte模板。我没有更改应用程序本身,我的唯一目标是使用Docker为svelte应用程序服务。我使用纱线浆果(v2)作为包管理器和构建过程的rollupjs。这是我的第一个问题,如果遗漏了什么,请告诉我。
我期待图像被建立,但当建设过程达到“纱线建设”命令,它永远不会完成。它也不会崩溃,但它也永远不会完成构建步骤。它似乎挂在捆绑的台阶上:
=> => # src/main.ts → public/build/bundle.js... 来自package.json:"build": "rollup -c"的构建命令
我的Dockerfile最初是从这里获取的:https://sveltesociety.dev/recipes/publishing-and-deploying/dockerize-a-svelte-app/。但是,我必须对它进行一些修改,以实现纱线v2,并且我找到了以下堆栈线程:Using Yarn 2 (Berry) for packaging application in a Docker image。添加该问题的一些修改后,我得到了以下Dockerfile:
WORKDIR /app
COPY package.json ./
RUN yarn set version berry
COPY .yarn ./.yarn
COPY yarn.lock .yarnrc.yml ./
RUN yarn plugin import workspace-tools
RUN yarn workspaces focus -A --production
COPY . ./
RUN yarn build # This is where it gets stuck
FROM nginx:1.19-alpine
COPY --from=build /app/public /usr/share/nginx/html我运行要构建的命令docker build -t svelte-image .,这是我得到的输出:
[+] Building 572.6s (16/18)
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/nginx:1.19-alpine 1.2s
=> [internal] load metadata for docker.io/library/node:12 1.1s
=> CACHED [stage-1 1/2] FROM docker.io/library/nginx:1.19-alpine@sha256:07ab71a2c8e4ecb19a5a5abcfb3a4f175946c001c8af288b1aa766d67b0 0.0s
=> CACHED [build 1/6] FROM docker.io/library/node:12@sha256:cc4adb82efc04b74b9f96326e682ad04be2df84d23e40609802eb6d6c207abde 0.0s
=> [internal] load build context 0.1s
=> => transferring context: 69.58kB 0.0s
=> CACHED [stage-1 2/3] RUN rm /etc/nginx/nginx.conf /etc/nginx/conf.d/default.conf 0.0s
=> CACHED [build 2/10] WORKDIR /app 0.0s
=> CACHED [build 3/10] COPY package.json ./ 0.0s
=> CACHED [build 4/10] RUN yarn set version berry 0.0s
=> [build 5/10] COPY .yarn ./.yarn 0.2s
=> [build 6/10] COPY yarn.lock .yarnrc.yml ./ 0.0s
=> [build 7/10] RUN yarn plugin import workspace-tools 1.5s
=> [build 8/10] RUN yarn workspaces focus -A --production 0.5s
=> [build 9/10] COPY . ./ 0.1s
=> [build 10/10] RUN yarn build 568.9s
=> => # src/main.ts → public/build/bundle.js... # -> Never completes我一直在试图弄清楚为什么构建挂起,但我无法找到错误的来源。它只是很好的工作时,在当地建设与纱线建设。有人知道为什么它挂在捆绑过程中吗?
发布于 2022-03-13 20:35:02
我不知道出了什么问题,但我成功地构建了码头形象并成功运行了它。以下是正在工作的Dockerfile:
FROM node:16 AS build
WORKDIR /app
COPY package.json ./
RUN yarn set version berry
COPY .yarn ./.yarn #
COPY yarn.lock .yarnrc.yml ./
RUN yarn install
# These two lines are from the original example. It did not work to use this,
# but I leave it here to highlight the difference
## RUN yarn plugin import workspace-tools
## RUN yarn workspaces focus -A --production
COPY . ./
RUN yarn build
FROM nginx:1.19-alpine
COPY --from=build /app/public /usr/share/nginx/htmlhttps://stackoverflow.com/questions/71457786
复制相似问题