Настройка 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
Для обновления всех пакетов — имя команды опускается.
