Мы собираемся развернуть нашу кодовую базу в среде без исходящего доступа в Интернет - с помощью docker. Однако - похоже, что мы не можем предварительно собрать все, поэтому нам не нужно извлекать изображения из какого-либо репозитория. Сервер подготовлен с помощью 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"]
Я хочу предварительно собрать это, чтобы не запускать npm install pm2 -g
бит - так как это не сработает. Я пробовал:
docker commit 8671bf3bd1b5 my-node:latest
(8671bf3bd1b5 - идентификатор контейнера)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
из docker-compose.yml в автономной среде и заменить на image: my-node:latest
Он все еще пытается вытащить node: latest и запустить npm install pm2 -g
хотя. Что мы делаем не так?
да, вы экспортировали образ / контейнер с именем my-node: latest. Но в Dockerfile он построен из node: latest, который вы забыли экспортировать. ...