Appearance
Миграция модуля realweb.api.task c v.6.8 на v6.9 (rabbitmq)
Параметры подключения к БД
php
<?php
array(
'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
'host' => defined('DOCKER_MODE') ? '172.17.0.1' : 'localhost',
'database' => 'database',
'login' => defined('DOCKER_MODE') ? 'docker' : 'localhostlogin',
'password' => 'password',
'options' => 2.0,
)Инструкции для сборки docker образа
shell
FROM php:8.3-fpm
ARG USER_ID
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
libonig-dev \
libzip-dev \
nano \
&& docker-php-ext-install -j$(nproc) iconv mbstring mysqli pdo_mysql zip opcache \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) gd
ADD ./docker/rabbitmq/php.ini /usr/local/etc/php/conf.d/40-custom.ini
RUN mkdir /var/lib/php && mkdir /var/lib/php/sessions
EXPOSE 4000
USER $USER_ID:$USER_ID
WORKDIR /var/www/somesite
CMD ["/bin/sh", "-c", "php -f /var/www/somesite/backend/local/modules/realweb.api.task/tools/rabbitmq/index.php"]Параметры docker образа
RabbitMq всегда крутится на 50** порту (** - зарезервированный порт площадки)
yml
version: '3.7'
services:
rabbitmq:
image: 127.0.0.1:5000/somehost_rabbitmq
build:
context: .
dockerfile: ./docker/rabbitmq/Dockerfile
restart: always
ports:
- "5072:4000"
volumes:
- ./backend:/var/www/somehost/backend
- ../bitrix:/var/www/bitrix
- ../upload:/var/www/upload
- /var/www/.ssh/:/var/www/.ssh
- /var/lib/php/sessions:/var/lib/php/sessions
- tmp:/tmp
volumes:
tmp: {}Стадия пост деплоя в паплайне
yml
stages:
- deploy
- post-deploy
- revert
- notify
post-deploy-production:
stage: post-deploy
variables:
GIT_STRATEGY: none
when: always
only:
- master
needs: ["deploy-production"]
script:
- |
ssh $RW_DEPLOY_USER@$RW_DEPLOY_HOST /bin/bash -e <<EOF
cd $RW_DEPLOY_ROOT
php8.3 ./last_release/backend/local/modules/realweb.api.task/tools/start
EOFСекция проверки запуска зада при деплое
Замечание
При первом запуске данного файла еще не будет, т.к. composer install происходит позднее.
yml
.deploy-pre-start: &deploy-pre-start
- |
ssh $RW_DEPLOY_USER@$RW_DEPLOY_HOST /bin/bash -e <<EOF
cd $RW_DEPLOY_ROOT
php8.3 ./last_release/backend/local/modules/realweb.api.task/tools/pause
EOFСборка и запуск образа docker
yml
.deploy-ssh-install-rabbitmq: &deploy-ssh-install-rabbitmq
- |
ssh $RW_DEPLOY_USER@$RW_DEPLOY_HOST /bin/bash -e <<EOF
cd $RW_DEPLOY_ROOT
cd last_release
docker-compose build --build-arg USER_ID=33 rabbitmq
docker-compose up --force-recreate -d rabbitmq
EOFНовые команды в деплое
yml
deploy-develop:
stage: deploy
resource_group: develop
variables:
RW_DEPLOY_USER: $RW_DEV_USER
RW_DEPLOY_HOST: $RW_DEV_HOST
RW_DEPLOY_ROOT: $RW_DEV_ROOT
only:
- develop
when: always
script:
- *deploy-pre-start
- *deploy-start
- *deploy-composer-install
- *deploy-front-admin-install
- *deploy-upload-archive
- *deploy-ssh-install-backend
- *deploy-ssh-install-frontend
- *deploy-ssh-install-websocket
- *deploy-ssh-install-rabbitmq