Skip to content

Установка и настройка ​

Установка 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_STACK

Helper ​

Включить/выключить сервис при запуске ​

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_STACK

DEV ​

bash
docker image prune -f
docker-compose build --build-arg ENV=develop node
docker-compose up -d node