Назад | Перейти на главную страницу

Подготовьте установку докера для работы в автономном режиме

Мы собираемся развернуть нашу кодовую базу в среде без исходящего доступа в Интернет - с помощью 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 бит - так как это не сработает. Я пробовал:

  1. Загрузил это как контейнер на подключенном к Интернету хосте
  2. docker commit 8671bf3bd1b5 my-node:latest (8671bf3bd1b5 - идентификатор контейнера)
  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 из docker-compose.yml в автономной среде и заменить на image: my-node:latest

Он все еще пытается вытащить node: latest и запустить npm install pm2 -g хотя. Что мы делаем не так?

да, вы экспортировали образ / контейнер с именем my-node: latest. Но в Dockerfile он построен из node: latest, который вы забыли экспортировать. ...