介绍 :
您好,我有一个名为 的项目时间管理器 包含一个名为 的文件夹主题_02 .在 主题_02 项目文件夹,我有一个 docker-compose.yml
, 一个 Dockerfile
,以及我的 的所有源代码视频 项目。
-time_manager
-theme_02
-Dockerfile
-docker-compose.yml
-etc..
Dockerfile
:FROM node:latest as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install --prefer-offline --no-audit
COPY ./ .
RUN npm run build
FROM nginx as production-stage
RUN mkdir /app
COPY --from=build-stage /app/dist /app
COPY nginx.conf /etc/nginx/nginx.conf
当我使用 docker build -t vue_front .
构建 docker 镜像时并使用 docker run -it -p 8080:80 vue_front
运行 docker 容器.它工作正常,我可以看到我的 Node 项目我的
docker-compose.yml
文件是:version: '3.6'
services:
vue_front:
build:
./.
ports:
- "8080:80"
如果我使用命令 docker-compose up -d
,它也可以完美运行,我的 Node 项目正在正确加载。错误 :
当我尝试移动
docker-compose.yml
里面时间管理器 , 如:-time_manager
-docker-compose.yml
-theme_02
-Dockerfile
-etc..
我不要忘记更新 docker-compose.yml
文件:version: '3.6'
services:
vue_front:
build:
./theme_02
ports:
- "8080:80"
我重建了 docker 镜像并运行它,没有错误。但是当我去
http://localhost:8080
,页面不加载。似乎移动
docker-compose.yml
归档,创建一个错误,这很奇怪,因为我为其他项目做过,而且效果很好。
最佳答案
您可能必须指定 build.context
docker-compose 定义中的字段并使用来自 build.dockerfile
的相对路径引用 Dockerfile(使用 context
字段)文件夹。
见:https://docs.docker.com/compose/compose-file/#build
您的 docker-compose.yml
应该是这样的:
version: '3.6'
services:
vue_front:
build:
context: ./theme_02
dockerfile: Dockerfile #optional
ports:
- "8080:80"
关于node.js - 移动 docker-compose.yml 文件时,Nginx 镜像的 docker-compose 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64594510/