Appearance
Установка и настройка
Установка Docker
bash
apt install docker.io
sudo usermod -aG docker USERУстановка docker-compose
bash
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composeСоздаём Swarm
bash
docker swarm initУстановка локального репозитория
bash
docker service create --name registry --publish published=5000,target=5000 registry:2Билдим образы docker
bash
docker-compose buildОтправить образ в репозиторий
bash
docker-compose pushРазвертывание нового стека или обновление существующего
bash
docker stack deploy --with-registry-auth --compose-file docker-swarm.yml MY_STACKHelper
Включить/выключить сервис при запуске
bash
systemctl enable --now docker
systemctl disable --now dockerСборка образа и запуск контейнера
bash
docker-compose up --build -d CONTAINER_NAMEОстановка контейнера
bash
docker-compose down CONTAINER_NAMEУдаление всех данных
bash
docker system prune -aУдаление неиспользуемых образов (Которые остается при перезапуске)
bash
docker image prune -f
docker rmi $(docker images "127.0.0.1:5000/PROJECT_NAME_*" --filter "dangling=true" -q --no-trunc) -fЗакрыть 5000 порт
bash
sudo iptables -I FORWARD 1 -d 172.17.0.2 -p tcp --dport 5000 -j DROPПотребляемые ресуры
bash
docker ps -q | xargs docker stats --no-streamПросмотр полную информацию о сервисе (Ошибки при запуске)
SERVICE_ID - docker service ls
bash
docker service ps SERVICE_IDУдаление всех сервисов и контейнеров в MY_STACK
bash
docker stack rm MY_STACKИмпорт БД в контейнер
bash
docker exec -i $(docker ps -q -f name=mysql) mysql -uUSER -pPASSWORD bitrix < dump.sqlВыполнение миграций
bash
docker exec -u www-data $(docker ps -q -f name=php-fpm.1) php /var/www/release/backend/bitrix/tools/migrate apply -fУстановка composer
bash
docker exec -u www-data $(docker ps -q -f name=php-fpm.1) composer install --working-dir=/var/www/release/backend/Конфиг nginx на хосте
nginx
server {
listen 80;
listen [::]:80;
server_name SERVER_NAME;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1m;
proxy_connect_timeout 1m;
proxy_pass http://192.168.0.5:3065;
}
location ~* /(api|download|static|upload|bitrix)/ {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1m;
proxy_connect_timeout 1m;
proxy_pass http://192.168.0.5:8065;
}
}Bamboo
PROD
bash
docker image prune -f
docker rmi $(docker images "127.0.0.1:5000/PROJECT_NAME_*" --filter "dangling=true" -q --no-trunc) -f
docker-compose build
docker-compose push
docker stack deploy --with-registry-auth --compose-file docker-swarm.yml MY_STACKDEV
bash
docker image prune -f
docker-compose build --build-arg ENV=develop node
docker-compose up -d node