大家好,我在为 remix.run 应用程序创建 docker 映像并在 github 作业中使用它时遇到了一个奇怪的问题。
我有这个 Dockerfile
FROM node:16-alpine as deps
WORKDIR /app
ADD package.json yarn.lock ./
RUN yarn install
# Build the app
FROM node:16-alpine as build
ENV NODE_ENV=production
WORKDIR /app
COPY --from=deps /app/node_modules /app/node_modules
COPY . .
RUN yarn run build
# Build production image
FROM node:16-alpine as runner
ENV NODE_ENV=production
ENV PORT=80
WORKDIR /app
COPY --from=deps /app/node_modules /app/node_modules
COPY --from=build /app/build /app/build
COPY --from=build /app/public /app/public
COPY --from=build /app/api /app/api
COPY . .
EXPOSE 80
CMD ["npm", "run", "start"]
如果在我的本地机器上构建映像,一切正常,我可以运行容器并指向它。我制作了一个 github 工作流,构建了相同的图像并将其推送到我的 docker hub 上。
但是当 github 作业运行时,它总是会因为这个错误而失败
Step 16/21 : COPY --from=build /app/build /app/build
COPY failed: stat app/build: file does not exist
我的 remix.run 配置是:
/**
* @type {import('@remix-run/dev/config').AppConfig}
*/
module.exports = {
appDirectory: "app",
assetsBuildDirectory: "public/build",
publicPath: "/build/",
serverBuildDirectory: "api/_build",
devServerPort: 8002,
ignoredRouteFiles: [".*"],
};
提前感谢您的帮助