From 04387d65cfb465e61bb1b21f23f0cdf198d3bbf2 Mon Sep 17 00:00:00 2001 From: Alexander Demidov Date: Thu, 3 Apr 2025 17:30:35 +0300 Subject: [PATCH] * seafile add volume with yq + todo about main script create stack project additional options + rsync example for sync remote ide distros and plugins --- create-stack-project.sh | 1 + stack-project/_create-stack-www-project.sh | 13 +++++++++++-- stack-project/stack/_make-safile-service.sh | 12 ++++++++---- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/create-stack-project.sh b/create-stack-project.sh index 0f785c2..8f47283 100755 --- a/create-stack-project.sh +++ b/create-stack-project.sh @@ -7,6 +7,7 @@ cd $SCRIPT_DIR # Список обязательных программ required_programs=( "pwgen" + "yq" ) # Проверка каждой программы diff --git a/stack-project/_create-stack-www-project.sh b/stack-project/_create-stack-www-project.sh index 5415318..e2eba8e 100644 --- a/stack-project/_create-stack-www-project.sh +++ b/stack-project/_create-stack-www-project.sh @@ -1,6 +1,11 @@ #!/bin/bash set -e +# TODO +# 1. Указывать версию PHP (сейчас скрипту якобы можно передать либу (уже особо нет)) +# 2. Ну и либу seafile'а +# 3. А ещё SSH-ключ разработчика. На локальной станции он един, а не на локальной - их много + # Проект должен быть указан родительским скриптом if [ ! -n "$PROJECT" ]; then echo "❌ Проект не указан!" @@ -36,7 +41,7 @@ services: networks: apihole_net: aliases: - - workspace.${PROJECT}.saturn + - workspace.${PROJECT}.${MACHINE} mariadb: extends: file: ./../structure/compose.base.yaml @@ -86,4 +91,8 @@ cat << EOF > ${WWW_DIR}/${PROJECT}/index.php phpinfo(); EOF -chown -R $P_UID:$P_GID ${WWW_DIR} \ No newline at end of file +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/ \ No newline at end of file diff --git a/stack-project/stack/_make-safile-service.sh b/stack-project/stack/_make-safile-service.sh index 9446147..f5b3312 100644 --- a/stack-project/stack/_make-safile-service.sh +++ b/stack-project/stack/_make-safile-service.sh @@ -17,16 +17,20 @@ echo "SEAFILE_PASS: ${SEAFILE_PASS}" PROJECT_UPPERCASE=$(echo ${PROJECT} | tr '[:lower:]' '[:upper:]') -cat << EOF >> ${STACKS_DIR}/seafile/.env +SEAFILE_STACK_DIR="${STACKS_DIR}/seafile" + +cat << EOF >> ${SEAFILE_STACK_DIR}/.env ${PROJECT_UPPERCASE}_USER=${SEAFILE_USER} ${PROJECT_UPPERCASE}_PASS=${SEAFILE_PASS} ${PROJECT_UPPERCASE}_LIB=${SEAFILE_LIB} EOF -sed -e "s/volumes:/volumes:\n\s\sseafile-$PROJECT:/g" /opt/stacks/seafile/compose.yaml -cat << EOF >> /opt/stacks/seafile/compose.yaml +# Добавляем новый volume, если его ещё нет +yq eval ".volumes += {\"seafile-$PROJECT\": null}" -i "${SEAFILE_STACK_DIR}/compose.yaml" + +cat << EOF >> ${SEAFILE_STACK_DIR}/compose.yaml ${PROJECT}: extends: file: ./compose.base.yaml @@ -38,4 +42,4 @@ cat << EOF >> /opt/stacks/seafile/compose.yaml SEAF_USERNAME: "\${${PROJECT_UPPERCASE}_USER}" SEAF_PASSWORD: "\${${PROJECT_UPPERCASE}_PASS}" SEAF_LIBRARY: "\${${PROJECT_UPPERCASE}_LIB}" -EOF \ No newline at end of file +EOF