我们将在一个没有出站互联网访问的环境中部署我们的代码库 – 使用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位 – 因为它不会工作。 我所尝试的是:
docker commit 8671bf3bd1b5 my-node:latest (8671bf3bd1b5是容器ID) 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 -compose.yml中删除build: ./docker/node /node,并replace为image: my-node:latest 它仍然试图拉节点:最新和运行npm install pm2 -g虽然。 我们做错了什么?