无法在 nginx /etc/nginx/conf.d/default.conf 中复制配置文件

Kas*_*yap 1 javascript config nginx docker reactjs

无法将我的项目目录中的配置文件复制到 /etc/nginx/conf.d/default.conf

源文件位置:/app/nginx.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
Run Code Online (Sandbox Code Playgroud)

尝试评论第一个复制命令,它能够复制构建并且很好。当它能够在应用程序目录中找到构建时,为什么它无法找到也在同一目录中的 nginix.conf 文件,做了一个 ls -la 并看到了 nginix.conf 文件。

TIA

mch*_*wre 7

如果源文件路径是/app/nginix.confdockefile,则应包含:

COPY /app/nginx.conf /etc/nginx/conf.d/default.conf
Run Code Online (Sandbox Code Playgroud)

如果您docker build/app主机上的目录运行命令,那么您上面的 dockerfile 应该可以工作。

更新:

如果您希望 docker 镜像的 /app/nginx.conf 文件node出现在nginx:alpine镜像中,那么您需要使用多阶段docker 构建。

改变你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
Run Code Online (Sandbox Code Playgroud)

/app/nginx.conf将从node图像复制文件到nginx:alpine图像。