You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.5 KiB
98 lines
2.5 KiB
#!/bin/bash
|
|
set -e
|
|
|
|
# TODO
|
|
# 1. Указывать версию PHP (сейчас скрипту якобы можно передать либу (уже особо нет))
|
|
# 2. Ну и либу seafile'а
|
|
# 3. А ещё SSH-ключ разработчика. На локальной станции он един, а не на локальной - их много
|
|
|
|
# Проект должен быть указан родительским скриптом
|
|
if [ ! -n "$PROJECT" ]; then
|
|
echo "❌ Проект не указан!"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir ${STACKS_DIR}/${PROJECT}
|
|
|
|
cat << EOF > ${STACKS_DIR}/${PROJECT}/compose.yaml
|
|
services:
|
|
nginx:
|
|
extends:
|
|
file: ./../structure/compose.base.yaml
|
|
service: nginx
|
|
php:
|
|
extends:
|
|
file: ./../structure/compose.base.yaml
|
|
service: php
|
|
workspace:
|
|
extends:
|
|
file: ./../structure/compose.base.yaml
|
|
service: workspace
|
|
build:
|
|
args:
|
|
- INSTALL_NODE=false
|
|
working_dir: /var/www/\${PROJECT}
|
|
volumes:
|
|
- ConfigJetBrains:/home/laradock/.config/JetBrains
|
|
- BashHistoryLog:/home/laradock/.bash_history
|
|
- VSCodeServerInsiders:/home/laradock/.vscode-server-insiders
|
|
secrets:
|
|
- composer_auth
|
|
networks:
|
|
apihole_net:
|
|
aliases:
|
|
- workspace.${PROJECT}.${MACHINE}
|
|
mariadb:
|
|
extends:
|
|
file: ./../structure/compose.base.yaml
|
|
service: mariadb
|
|
redis:
|
|
extends:
|
|
file: ./../structure/compose.base.yaml
|
|
service: redis
|
|
secrets:
|
|
user_authorized_keys:
|
|
file: /opt/projects/\${PROJECT}/ssh/authorized_keys
|
|
user_ssh_key:
|
|
file: /opt/projects/\${PROJECT}/ssh/id_ed25519
|
|
user_ssh_key_pub:
|
|
file: /opt/projects/\${PROJECT}/ssh/id_ed25519.pub
|
|
composer_auth:
|
|
file: /opt/projects/\${PROJECT}/config/composer/auth.json
|
|
networks:
|
|
dockge_default:
|
|
external: true
|
|
pma_default:
|
|
external: true
|
|
apihole_net:
|
|
external: true
|
|
volumes:
|
|
ConfigJetBrains:
|
|
BashHistoryLog:
|
|
VSCodeServerInsiders:
|
|
EOF
|
|
|
|
# Possible PHP_VERSION is 7.4, 8.1, 8.2 & 8.3
|
|
cat << EOF > ${STACKS_DIR}/${PROJECT}/.env
|
|
PROJECT=${PROJECT}
|
|
PHP_VERSION=8.3
|
|
EOF
|
|
|
|
chown -R $_PUID:$P_GID /opt/stacks/${PROJECT}
|
|
|
|
|
|
WWW_DIR=${PROJECT_DIR}/www
|
|
|
|
mkdir -p ${WWW_DIR}/${PROJECT}
|
|
|
|
cat << EOF > ${WWW_DIR}/${PROJECT}/index.php
|
|
<?php
|
|
|
|
phpinfo();
|
|
EOF
|
|
|
|
chown -R $P_UID:$P_GID ${WWW_DIR}
|
|
|
|
# RemoteIde dist и плагины
|
|
# rsync -a CacheJetBrains/fresh/ /var/lib/docker/volumes/xbll_CacheJetBrains/_data/
|
|
# rsync -a LocalShareJetBrains/ /var/lib/docker/volumes/xbll_LocalShareJetBrains/_data/
|