【发布时间】:2020-02-24 01:02:09
【问题描述】:
虽然我知道该课程是针对后端应用程序的,但我尝试为前端 Nuxt.js 应用程序制作 docker-compose.yml 和 Dockerfile。 我的 docker-compose.yml 文件如下所示:
version: '2.4'
services:
web:
build: .
volumes:
- .:/app
- /app/node_modules/
ports:
- 3000:3000
任何我的 Dockerfile:
FROM node:13.0-alpine
ENV NODE_ENV=development
WORKDIR /app
EXPOSE 3000
COPY package.json yarn.lock* ./
RUN apk add --no-cache --virtual .build-deps alpine-sdk python \
&& yarn && yarn cache clean \
&& apk del .build-deps
ENV PATH=./node_modules/.bin/:$PATH
COPY . .
CMD ["nuxt"]
当我使用docker-compose up 运行它时,我的应用程序通过nuxt CMD 正确构建和启动,但是当我转到http://localhost:3000 时,应用程序不在线。
我在这里做错了什么?
【问题讨论】:
-
两个常见的原因是开发服务器默认在容器私有
localhost接口上提供服务(将其设置为在 0.0.0.0 上运行),或者使用 Docker 工具箱(使用docker-machine ip地址,通常为 192.168.99.100)。请记住,您的volumes:声明会主动阻止 Docker 更新您可能不想要的node_modules树。 -
什么显示命令 docker-compose logs web ?
-
@DavidMaze 我在 Windows 10 Pro 上,所以我使用普通的 Docker 桌面而不是 Docker 工具箱,这样一个就被清除了。如何使容器服务于
0.0.0.0而不是内部本地主机?我敢打赌这就是原因?要更新我的依赖项,我使用docker-compose run web yarn -
@DavidMaze
0.0.0.0的建议是正确的!我将ENV NUXT_HOST=0.0.0.0添加到我的 Dockerfile 中,它现在可以工作了。也许将您的建议作为答案发布,以便我接受...
标签: node.js docker docker-compose nuxt.js