Настройка satis
satis — кеширующий сервер для пакетов php composer. Для настройки репозитория будем использовать официальный docker. Разработчикам понадобится редактировать файла конфигурации satis.json, для этого поднимем отдельный контейнер с sftp и ftp серверами внутри.
Файл конфиргурации в нашем случае должен располагаться тут: /srv/docker/satis/build/satis.json и содержит примерно следующее:
{ \"name\": \"local/repo\", \"homepage\": \"http://satis:8001\", \"repositories\": [ { \"type\": \"vcs\", \"url\": \"ssh://git@gitlab:22/project/project.git\" }, { \"type\": \"composer\", \"url\": \"https://packagist.org\" } ], \"require\": { \"tw/config-parser\": \"*\", \"cloudcreativity/laravel-json-api\": \"^1.1\", \"fideloper/proxy\": \"^4\", ...................... ... and other repo ... ...................... }, \"require-all\": false, \"require-dependencies\": true, \"archive\": { \"directory\": \"dist\", \"format\": \"tar\", \"skip-dev\": true } }
Следующим шагом нужно запустить docker контейнер satis — docker-compose.yml описан ниже. Так же в этом файле описывается запуск sftp контейнера.
satis: image: composer/satis container_name: satis ports: - \"8001:8001\" volumes: - /srv/docker/satis/build:/build - /srv/docker/satis/composer:/composer - /srv/docker/satis/keys:/keys - /srv/docker/satis/ssh_config:/root/.ssh/config restart: always command: php -S 0.0.0.0:8001 -t /build/output sftp-satis: image: casp/sftp-ftp container_name: sftp-satis volumes: - /srv/docker/satis/build:/build restart: always ports: - \"2213:22\" environment: - USER_NAME=sftpdev - USERID=0 - PUBKEY=\'ssh-rsa ...... YOUR SSH KEY .... openssh-key\'
После старта satis выкачает репо описанные в конфиге, и будет поднят по адресу сервера на порту описанному в докерфайле. В нашем случае 8001.
Для того чтобы произвести обновление определенного пакета нужно выполнить команду ниже:
docker exec -it satis php /satis/bin/satis build /build/satis.json /build/output PKGNAME
Для обновления всех пакетов — имя команды опускается.