Репозитории на Gitlab: https://gitlab.com/drakeps/deployment-docker-image
Пример deploy.yml: https://gitlab.com/drakeps/deployment-docker-image/-/blob/9349b9ea78d93262493c4c932d8c5c5f32742285/examples/deploy.yml
Для запуска нужно отправить папку с проектом в контейнер в папку /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 | Строка, на которую заменяем | '' |
Content type
Image
Digest
Size
86.8 MB
Last updated
about 5 years ago
docker pull drakeps/deploy:v2.3