Size: a a a

RU.Docker — Официальное Русское Сообщество

2019 July 15

AN

Anton Nemtsev in RU.Docker — Официальное Русское Сообщество
у меня есть докер с node.js сервером, который билдит статику сайта и запускает сервер
есть докер с nginx, который терминирует https соединение и проксирует запрос в первый докер
я хочу сервить статику nginx’ом, а не нодой.
так что для начала я хочу сделать bind-mount статики которая билдится в node.
но к моему удивлению … её в замаунченой папке не оказывается.
со сборкой всё ок.
сейчас сделаю gist с докерами
источник

VK

Vitalii Kozinskii in RU.Docker — Официальное Русское Сообщество
потому что ты маунтишь пустую папку поверх, с огромной вероятностью
источник

AN

Anton Nemtsev in RU.Docker — Официальное Русское Сообщество
источник

AN

Anton Nemtsev in RU.Docker — Официальное Русское Сообщество
Vitalii Kozinskii
потому что ты маунтишь пустую папку поверх, с огромной вероятностью
звучит логично
источник

AN

Anton Nemtsev in RU.Docker — Официальное Русское Сообщество
а как это решается обычно?
источник

AF

Andrey F in RU.Docker — Официальное Русское Сообщество
если у тебя всё на одном хосте, то возможно вариант с named volums и  вот этим всем
источник

AF

Andrey F in RU.Docker — Официальное Русское Сообщество
и не путайте фазы билда и руна контейнеров, они не равнозначны
источник

AN

Anton Nemtsev in RU.Docker — Официальное Русское Сообщество
Andrey F
если у тебя всё на одном хосте, то возможно вариант с named volums и  вот этим всем
Да, хост один.
А что значит named volumes?
Они как то раньше маунтяться и не будут перезаписываться?
источник

N

Navern in RU.Docker — Официальное Русское Сообщество
Anton Nemtsev
Подскажите пожалуйста, а на какой стадии происходит mount в докере?
есть docker-файл, в нем множество слоев
есть docker-compose - файл, в котором прописаны mount
запускаю docker compose.
я правильно понимаю что mount должен работать на всех слоях докер-файла в процессе билда?
Во время билда маунт не работает
источник

N

Navern in RU.Docker — Официальное Русское Сообщество
есть issue на эту тему
источник

AF

Andrey F in RU.Docker — Официальное Русское Сообщество
нет, они предсказуемо сохраняемы и расшариваемы, тут когда то вроде была давно ссылка на толковую статью, там в общем то три типа волумов в докере, оно и в доках вроде описано docker volums или типа того
источник

N

Navern in RU.Docker — Официальное Русское Сообщество
Если ты хочешь шарить node_modules на время билда, то логичнее делать отдельный контейнер, который используется как билдер. и потом артефакты только копировать и собирать. Что-то вроде ручного мультистейджа
источник

AF

Andrey F in RU.Docker — Официальное Русское Сообщество
но да, если вы что то ложите во время билда, то оно там уже будет и как его потом расшарить, это отдельная задача
источник

N

Navern in RU.Docker — Официальное Русское Сообщество
или использовать другие билдеры, которые поддерживают маунт во время билда
источник

AN

Anton Nemtsev in RU.Docker — Официальное Русское Сообщество
Navern
Если ты хочешь шарить node_modules на время билда, то логичнее делать отдельный контейнер, который используется как билдер. и потом артефакты только копировать и собирать. Что-то вроде ручного мультистейджа
нет, я хочу расшарить сгенерированную во время билда статику, что бы сервить её nginx из другого контейнера
источник

N

Navern in RU.Docker — Официальное Русское Сообщество
Anton Nemtsev
нет, я хочу расшарить сгенерированную во время билда статику, что бы сервить её nginx из другого контейнера
docker cp?
источник

N

Navern in RU.Docker — Официальное Русское Сообщество
volumes-from?
источник

AF

Andrey F in RU.Docker — Официальное Русское Сообщество
не, ну я же не говорю что нельзя, я о том что тогда надо о другом вот да думать
источник

AN

Anton Nemtsev in RU.Docker — Официальное Русское Сообщество
Navern
docker cp?
1. а можно такое делать между разными докер-image
2. volumes-from? — вроде бы оно деприкейтед? я пробовал сделать volumes type: bind. но оно перезаписывает статику из за того что маунтиться после её генерации
источник

N

Navern in RU.Docker — Официальное Русское Сообщество
Anton Nemtsev
1. а можно такое делать между разными докер-image
2. volumes-from? — вроде бы оно деприкейтед? я пробовал сделать volumes type: bind. но оно перезаписывает статику из за того что маунтиться после её генерации
1. docker image? Не оч понимаю что ты тут хочешь. Статику можно копировать. Возможно ты хочешь делать мультистейдж и билдить два разных имаджа из одного.

Я не помню тчоный синтаксис но смысл в том, что у тебя в докерфайле три FROM директивы. Одна юзается чтобы сбилдить артефакты а в двух других билдятся результирующие имаджи и юзается COPY —from=builder
источник