Я использую docker-compose для запуска моего контейнера и каталогов монтирования. Контейнер Docker работает нормально, но мне нужно создавать дистрибутив моего кода при каждом обновлении, чтобы разработчики могли протестировать его на своих локальных компьютерах. Вот мой файл docker-compose.
version: "3"
services:
my-coontainer:
build:
context: .
env_file: docker-compose.env
container_name: my-coontainer
hostname: my-coontainer
ports:
- "8080:80"
volumes:
- .:/opt/src/my-coontainer:delegated
- ~/.npm:/opt/src/my-coontainer/.npm
restart: unless-stopped
entrypoint: ["/opt/src/my-coontainer/docker-entrypoint.sh"]
command: ["nginx", "-g", "daemon off;"]
networks:
- my-network
networks:
my-network:
external:
name: my-network
Моя точка входа - это файл bash
#!/bin/bash -e
# Build project
yarn build
# Parsing nginx conf
j2 nginx/default.conf.j2 > /etc/nginx/conf.d/default.conf
exec "$@"
Я попробовал запустить его, он работает нормально, но когда я что-то меняю на своем хост-компьютере, изменение отражается в файле внутри контейнера, но процесс yarn build больше не запускается, и Nginx не перезапускается.
Может кто-нибудь сказать мне, что я делаю неправильно здесь?
yarn build process does not fire again neither the Nginx is restarted вам нужно сделать это вручную. Или внедрите какой-нибудь метод вне вашего контейнера, который будет отслеживать изменения. Как только контейнер построен, он собран, вы создаете другой контейнер, вам нужно загрузить этот другой контейнер и запустить его. Нет «онлайн» изменений, если вы не реализуете их.
что я слышал в Интернете, так это то, что если вы монтируете каталоги, докер сможет запускать любое обновление файла и перекомпилировать контейнер.





Что вы дарите своим коллегам? Могут ли они
docker runсоздать встроенный образ в репозитории или им также нужна полная копия исходного дерева приложений в их локальных системах?