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

时间:2019-07-03 16:28:42

标签: javascript reactjs docker nginx config

无法将项目目录中的配置文件复制到/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

尝试注释第一个复制命令,它能够复制构建,并且很好。 当它能够在应用程序目录中找到该版本时,为什么无法找到同样位于该目录中的nginix.conf文件,执行ls -la并看到了nginix.conf文件。

TIA

2 个答案:

答案 0 :(得分:2)

如果源文件路径为<grid :is-busy="gridIsBusy" :key="receipt.id" :fields="gridFields" :items="gridItems"> <template slot="mass-buttons"> <b-button @click.prevent="massDestroy">Odstranit vybrané</b-button> <b-button @click.prevent="massUnassign">Zrušit přiřazení pro vybrané</b-button> </template> <template slot="mass-checkbox-all"> <b-form-checkbox @change="checkAll"></b-form-checkbox> </template> <template slot="action-buttons" slot-scope="data"> <b-button v-b-tooltip.hover title="{{ __('Odstranit příjemku') }}" variant="danger" @click.prevent="deleteItem(data.data.item.id)"><i class="fa fa-times"></i></b-button> <b-button v-b-tooltip.hover title="{{ __('Zrušit přiřazení') }}" @click.prevent="unassignItem(data.data.item.id)"><i class="fa fa-ban"></i></b-button> </template> </grid> ,则ockefile应包含:

/app/nginix.conf

如果您正在主机上的COPY /app/nginx.conf /etc/nginx/conf.d/default.conf 目录中运行docker build命令,则上面的dockerfile应该可以工作。

更新

如果您期望/app Docker映像的/app/nginx.conf文件出现在node映像中,则需要使用multi-stage Docker构建。

将您的nginx:alpine更改为

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图像。

答案 1 :(得分:0)

如果有人还在为此苦苦挣扎......

将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;"]