Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Так же, при обновлении рабочего окружения достаточно сделать vagrant provision, а не перекачивать докер образ и терять все локальные изменения.Локальные изменения можно оформить ввиде баш скрипта и запускать после каждого обновления. Или просто сделать свой образ и унаследовать его от «официального».
sudo service restart nginx например, а вместо них надо использовать supervisorctl restart nginx. Остальное все как в свежеустановленной Ubuntu на виртуалке.# Nginx
# @see https://hub.docker.com/_/nginx/
# You should copy config files before create container!
# You should place virtual host configs in nginx/conf.d directory
- name: nginx
enabled: yes
image: nginx
tag: 1.10.1
state: started
hostname: nginx
detach: True
restart_policy: always
net: docknet
ports:
- 80:80
- 443:443
volumes:
- /data/ssl:/ssl:ro
- /data/nginx/htpasswds:/etc/nginx/htpasswds:ro
- /data/nginx/conf.d:/etc/nginx/conf.d:ro
- /data/nginx/fastcgi_params:/etc/nginx/fastcgi_params:ro
- /data/nginx/proxy_headers:/etc/nginx/proxy_headers:ro
- /data/nginx/proxy_params:/etc/nginx/proxy_params:ro
- /data/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- /data/nginx/default-content:/usr/share/nginx/html:ro
- /data/nginx/cache:/var/cache/nginx:rw
- /data/nginx/logs:/var/log/nginx:rw
docker-compose up -d
И да, я бы тоже не назвал свою работу «open-source инициативой»
надеюсь, вы уже не линкуете контейнеры через link, а используете встроенный в докер dns?
Ansible это хорошо, но это дополнительный компонент со всеми вытекающими.
Да, в случае с docker-compose при подключении внешних конфигов бывают неудобства с несовпадением User ID в контейнере и на хост машине, но это решается через chown, chmod (или аналоги).
Я не против Ansible, но, на мой взгляд, это тупиковый путь, потому что требует держать в контейнере как минимум 2 процесса. Например, php и sshd (поправьте меня, если это не так
Но это не вписывается в бест практис 1 контейнер = 1 процесс.
но почти в любой Linux-системе установлен по умолчанию
Да и свой phpdevenv мне нравится — все что надо у разработчика есть
Один процесс в контейнере или несколько — не имеет значения
благодаря Ansible-container не нужен
А если нужно несколько сайтов запустить?
Сложно. В этом плане хорош образ nginx-proxy. Он налету присоединяет новые контейнеры с нужным доменом, без необходимости ковыряться в конфигурации и шаманить с портами.
Но это не вписывается в бест практис 1 контейнер = 1 процесс
Open source инициатива Docker4Drupal.org