为“离线”环境准备docker安装

我们将在一个没有出站互联网访问的环境中部署我们的代码库 – 使用docker。 但是,我们似乎无法预先构build整个事物,因此我们不必从任何存储库中提取图像。 服务器是用docker和docker-compose编写的。

我们有一个docker-compose.yml文件,它的时间更长,但是这是我们无法工作的部分:

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

在/ docker / node中我们有一个Dockerfile:

 FROM node:latest EXPOSE 5000 RUN npm install pm2 -g CMD ["pm2-docker", "/var/www/laravel/socket/socket.js"] 

我想预先build立这个,所以它不会有运行npm install pm2 -g位 – 因为它不会工作。 我所尝试的是:

  1. 将其作为互联网连接主机上的容器启动
  2. docker commit 8671bf3bd1b5 my-node:latest (8671bf3bd1b5是容器ID)
  3. docker save -o my-node.docker my-node:latest
  4. docker export 8671bf3bd1b5 > my-node_latest.tar
  5. 将文件传输到脱机环境
  6. docker load -i my-node.docker
  7. cat my-node_latest.tar | docker import - my-node:latest
  8. 在脱机环境中从build: ./docker/node -compose.yml中删除build: ./docker/node /node,并replace为image: my-node:latest

它仍然试图拉节点:最新和运行npm install pm2 -g虽然。 我们做错了什么?