Sign inSign up

drakeps/deploy

By drakeps

•Updated about 5 years ago

Image
0

959

drakeps/deploy repository overview

Репозитории на Gitlab: https://gitlab.com/drakeps/deployment-docker-image⁠

Пример deploy.yml: https://gitlab.com/drakeps/deployment-docker-image/-/blob/9349b9ea78d93262493c4c932d8c5c5f32742285/examples/deploy.yml⁠

⁠Docker образ для деплоя проектов на сервер по SSH

Для запуска нужно отправить папку с проектом в контейнер в папку /project и указать параметр workdir = /project (папка с проектом совпадает с workdir):

docker run -v $PWD:/project -w /project ...

Если это docker-compose.yml:

volumes: - ./:/project
workdir: /project

⁠Использование

Команда: docker-compose -f deploy.yml run --rm deploy не закачает файлы, а просто покажет список файлов, которые могут быть загружены на сервер или удалены

Для того, чтобы закачать файлы нужно вызвать команду: docker-compose -f deploy.yml run --rm deploy upload или установать переменную UPLOAD в true: UPLOAD: "true"

Для того, чтобы закачать базу нужно вызвать команду: docker-compose -f deploy.yml run --rm deploy database или установать переменную DATABASE в true: DATABASE: "true"

⁠!!! При загрузке файлов база данных не закачивается и наоборот
⁠Доступные переменные окружения:
ENVОписаниеПо умолчанию
HOST_USERNAME* Указываем имя пользователя на сервере.
HOST_SITE_NAME_OR_IPl* Указываем домен или IP
PROJECT_DIR* Указываем локальную папку, в которой находится наш проект. Например wordpress/. Если проект находится в текущей папке, то указываем .
DEPLOYMENT_SERVER_PATH* Указываем путь до папки на сервере, куда хотим закачать файлы. !!! Тут нужно быть очень осторожным, так как закачиваемые файлы/папки перетирают файлы/папки на сервере. Например path_to/site.com
RSYNC_MOVE* Указываем файлы/папки через запятую, которые хотим передавать на сервер. Поиск файлов/папок происходит в PROJECT_DIR. ОСТОРОЖНО! Папки/файлы, которые передаются полностью заменяются (например, если на сервере в папке есть файлы которых нет в локальной папке, то они удалятся). Например wp-content/themes, vendor, ... Если хотим закачать все, что есть в проекте указываем .
RSYNC_EXCLUDEУказываем файлы/папки через запятую, которые не хотим передавать на сервер. Исключение происходит для каждой папки/файла, которые мы указали в RSYNC_MOVE. Т.е. если мы в RSYNC_MOVE указали папку Folder, то список файлов/папок в RSYNC_EXCLUDE будут исключены в папке Folder и т.д. Например .DS_Store, .vscode, .env, node_modules ...''
SSH_KEYКлюч SSH. Ключ можно передавать с помощью volumes в папку /ssh_tmp, например --volumes ~/.ssh/id_rsa:/ssh_tmp или указать в параметре SSH_KEY значение ключа.''
RUN_COMMANDSРазрешить выполнение командfalse
BEFORE_UPLOAD_LOCAL_COMMANDSКоманды, которые запустятся перед загрузкой файлов на сервер (на локальной машине)ls -la && npm install && composer install
AFTER_UPLOAD_SERVER_COMMANDSКоманды, которые запустятся после загрузк файлов на сервер (на серверной машине)ls -la && npm install && composer install
UPLOADЗагрузить файлы. Файлы будут загружены, только, если указать true. Иначе просто выводится информация о файлах, которые будут загружены или удалены на получающей стороне. Также можно передать параметр upload.false
DATABASEЗагрузить базу данных. Также можно передать параметр database.false
DB_LOCAL_NAMEНазвание локальной базы данных.''
DB_LOCAL_USERПользователь локальной базы данных.root
DB_LOCAL_PASSПароль локальной базы данных.secret
DB_LOCAL_HOSTХост локальной базы данных.db
DB_NAMEНазвание базы данных на сервере.''
DB_USERПользователь базы данных на сервере.''
DB_PASSПароль базы данных на сервере.''
DB_SEARCHСтрока, которую нужно заменить''
DB_REPLACEСтрока, на которую заменяем''

Tag summary

Content type

Image

Digest

Size

86.8 MB

Last updated

about 5 years ago

docker pull drakeps/deploy:v2.3