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