node.js - 移动 docker-compose.yml 文件时,Nginx 镜像的 docker-compose 不起作用

标签 node.js docker nginx docker-compose dockerfile

介绍 :
您好,我有一个名为 的项目时间管理器 包含一个名为 的文件夹主题_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/

相关文章:

node.js - node-forge 如何从文件中读取私有(private) rsa key

javascript - Node.js 域集群工作器断开连接

angularjs - 如何将现有的 AngularJS 2 网络应用程序转换为 Cordova 应用程序?

python - 使用 docker-compose 初始化 django 应用程序

nginx - 当原点关闭时在重试之间添加延迟(Nginx,502)

ruby-on-rails - 环境变量在 DigitalOcean 中不起作用

express - 将本地 nginx 服务器部署到公共(public) ubuntu 16.04

http - 在nodejs中没有收到数据时如何处理http.get()?

docker - 无法使用 cqlsh 连接到 cassandra docker

docker - docker特权模式和kubernetes特权容器的区别