使用docker-compose push将容器推送到注册表

时间:2018-07-12 13:21:11

标签: docker docker-compose

问题:我有一个浓缩的node.js应用程序,该应用程序使用docker-compose.yml使用mongodb。现在,我需要将其推送到我的注册表。我该怎么做呢?

我的docker-compose:

version: "3"
services:
  node_app_1:
    container_name: node_app_1
    restart: always
    build: .
    image: myusername/node_app_1
    volumes:
      - ./src:/usr/src/app/src
    env_file:
      - .env
    ports:
      - "3000:3000"
    links:
      - mongo
    networks:
      app_net:

  mongo:
    container_name: mongo
    image: mongo:3.6.6-jessie
    volumes:
      - ./data:/data/db
    ports:
      - "27017:27017"
    networks:
      app_net:
        aliases:
          - mongo

networks:
  app_net:

当我运行docker-compose push时,图像被推送到仓库中,但是当我将其拉出并运行时,我得到一个错误,说我的node.js应用无法连接到mongo。同样也没有设置环境变量。

1 个答案:

答案 0 :(得分:1)

docker-compose push仅将 images 推送到注册表,而不是compose文件本身(请参阅documentation)。要再次设置完整的应用程序(从注册表中提取),您需要另一个没有build语句的撰写文件,并使用docker-compose up