gpt4 book ai didi

docker - 无法启动运行 ember.js 镜像的 docker 容器,node_modules 为空

转载 作者:行者123 更新时间:2023-12-02 21:14:25 25 4
gpt4 key购买 nike

我试图让 ember.js 在基于图像 danlynn/ember-cli 的 docker 容器中运行图片

尝试了不同版本的 Dockerfile 和 docker compose.yml,但我总是以 docker-compose up 命令结束,提示以下内容:

node_modules appears empty, you may need to run npm install



镜像和容器已创建,但容器不会启动。

我是 docker 世界的新手,所以任何帮助将不胜感激!

我猜我需要运行 npm install 才能让错误消失,但我将它添加到 Dockerfile 以便它在构建镜像时运行,但这似乎没有帮助。

这是我的 Dockerfile 内容:
FROM danlynn/ember-cli
WORKDIR /code
COPY package.json /code
COPY bower.json /code
RUN ember init
RUN ember init --yarn
RUN bower --allow-root install
RUN npm install
COPY . /code
CMD ["ember", "serve"]

和 docker-compose.yml 文件:
version: "3"
services:
ember_gui:
build: .
container_name: ember_dev
volumes:
- .:/code
ports:
- "4200:4200"
- "7020:7020"
- "5779:5779"

最后,这是 package.json 以防万一
{
"name": "EmberUI",
"version": "0.0.1",
"description": "Test app GUI",
"main": "index.js",
"author": "Testing",
"license": "MIT",
"dependencies": {
"chai": "^4.1.2",
"mocha": "^5.2.0"
}
}

最佳答案

好的,经过大量实验,我能够基于 danlynn/ember-cli 镜像在 docker 中运行 ember 实例

得到教训:

1.- 图像显然设置为在容器的“myApp”目录中运行。我试图定义一个“代码”目录来放置所有文件,但显然它真的不喜欢那样。

2.- 镜像安装后需要在服务上运行 ember init 进行初始化。不知道为什么将命令放在 Dockerfile 中不起作用,但您只需在使用 docker-compose up 启动容器之前运行以下命令:

docker-compose run --rm ember_gui ember init

其中 ember_gui 是 docker-compose.yml 文件中 ember 服务的名称。

3.- ember 初始化会创建很多文件和子目录,因此为了清楚起见,请确保在没有其他内容的目录中运行它。

无论如何,这是我的 docker-compose.yml 的内容,以防它对其他人有用(请注意,我不再使用单独的 Dockerfile,而是直接使用图像):
version: "3"

services:
ember_gui:
image: danlynn/ember-cli
container_name: ember_dev
volumes:
- .:/myapp
command: ember server
ports:
- "4200:4200"
- "7020:7020"
- "7357:7357"

第一次运行它:
docker-compose run --rm ember_gui ember init
docker-compose up

之后,您可以运行
docker-compose up

关于docker - 无法启动运行 ember.js 镜像的 docker 容器,node_modules 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52186488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com