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. ...
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 é:
docker commit 8671bf3bd1b5 my-node:latest
(8671bf3bd1b5 é o ID do contêiner) docker save -o my-node.docker my-node:latest
docker export 8671bf3bd1b5 > my-node_latest.tar
docker load -i my-node.docker
cat my-node_latest.tar | docker import - my-node:latest
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?
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. ...