代码之家  ›  专栏  ›  技术社区  ›  camba1

无法启动docker容器运行余烬映像,节点_模块为空

  •  0
  • camba1  · 技术社区  · 6 年前

    danlynn/ember-cli 形象

    尝试了Dockerfile和docker的不同版本合成.yml,但我总是以docker compose up命令结束,抱怨如下:

    node_modules显示为空,您可能需要运行 npm install

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

    我猜我需要运行npm install才能消除错误,但我将它添加到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"]
    

    码头工人呢-合成.yml文件:

    version: "3"
    services:
      ember_gui:
        build: .
        container_name: ember_dev
        volumes:
          - .:/code
        ports:
           - "4200:4200"
           - "7020:7020"
           - "5779:5779"
    

    {
      "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"
      }
    }
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   camba1    6 年前

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

    经验教训:

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

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

    docker-compose run --rm ember_gui ember init
    

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

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

    不管怎样,这是我的docker的内容-合成.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