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