Prepare a instalação da janela de encaixe para o ambiente "offline"

1

Vamos implantar nossa base de código em um ambiente sem acesso à Internet de saída - usando o docker. No entanto, parece que não somos capazes de pré-construir a coisa toda para que não tenhamos que extrair imagens de qualquer repositório. O servidor é preparado com o docker e o docker-compose.

Temos um arquivo docker-compose.yml , é muito mais do que isso, mas essa é a parte em que não conseguimos trabalhar:

 node:
    container_name: my-node
    build: ./docker/node
    volumes_from:
      - volumes_source
    ports:
      - "5000:5000"
    links:
      - mysql
      - redis

Em / docker / node, temos um Dockerfile:

FROM node:latest

EXPOSE 5000

RUN npm install pm2 -g

CMD ["pm2-docker", "/var/www/laravel/socket/socket.js"]

Eu quero pré-construir isso para que ele não precise executar o npm install pm2 -g bit - já que não funcionará. O que eu tentei é:

  1. Inicializou isso como um contêiner em um host conectado à Internet
  2. docker commit 8671bf3bd1b5 my-node:latest (8671bf3bd1b5 é o ID do contêiner)
  3. docker save -o my-node.docker my-node:latest
  4. docker export 8671bf3bd1b5 > my-node_latest.tar
  5. Arquivos transferidos para o ambiente off-line
  6. docker load -i my-node.docker
  7. cat my-node_latest.tar | docker import - my-node:latest
  8. Remova build: ./docker/node do docker-compose.yml no ambiente off-line e substitua por image: my-node:latest

Ele ainda tenta puxar node: latest e executar npm install pm2 -g embora. O que estamos fazendo errado?

    
por minimyran 12.04.2017 / 12:28

1 resposta

0

sim, você exportou image / container chamado my-node: latest. Mas no Dockerfile, ele é construído a partir do node: latest, que você esquece de exportar. ...

    
por 14.08.2018 / 12:24