无法在我的项目dir中复制config file到/etc/nginx/conf.d/default.conf
源文件位置:/app/nginix.conf
COPY nginx.conf /etc/nginx/conf.d/default.conf
目标:/etc/nginx/conf.d/default.conf
docker文件中的步骤:
Tried the multi stage build:
- FROM node:8.9.0 as buid
- WORKDIR /app
- COPY package.json package-lock.json ./
- RUN npm install
- COPY . ./
- RUN npm run build
- FROM nginx:alpine
- RUN mkdir -p /var/www/html/client
- COPY --from=buid /app/nginix.conf /etc/nginx/conf.d/default.conf
- COPY --from=buid /app/build/ /var/www/html/client
尝试评论第一个复制命令,并且能够复制构建,这很好。当它能够在dir中找到构建时
tia
如果源文件路径为 /app/nginix.conf
,则dockefile应该包含:
COPY /app/nginx.conf /etc/nginx/conf.d/default.conf
如果您正在从主机上的/app
目录运行docker build
命令,则您的上述Dockerfile应该有效。
更新:
如果您期望/app/nginx.conf node
docker映像的文件中呈现在 nginx:alpine
映像中,则需要使用多阶段docker builds。
将您的dockerfile
更改为
FROM node as build
WORKDIR /app
COPY package json files
RUN npm build
FROM nginx:alpine
COPY --from=build /app/nginx.conf /etc/nginx/conf.d/default.conf
这将将/app/nginx.conf
文件从node
图像复制到nginx:alpine
图像。
如果某人仍在为此挣扎。
将WorkDir从应用程序更改为builddir工作!
FROM node:alpine as builder
WORKDIR '/builddir'
COPY package.json .
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=builder /builddir/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]