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

#!/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/