Skip to content
Snippets Groups Projects
Commit 0c315514 authored by jurgenhaas's avatar jurgenhaas
Browse files

Merge branch 'develop' into 'main'

Merging develop into main

See merge request !39
parents 76a647d3 8ffd6908
No related branches found
No related tags found
1 merge request!39Merging develop into main
......@@ -5,7 +5,7 @@ include:
variables:
VERSION: ${CI_COMMIT_TAG}
CI_VERSION: v2.2.15
CI_VERSION: v2.2.17
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
......
#!/bin/bash
if [[ -n $1 ]]; then
docker inspect ${1}_l3d | jq -r .[0].Config.Env | grep L3DHOSTDIR | cut -d'=' -f 2 | cut -d'"' -f 1
docker inspect ${1}_${USERNAME}_l3d | jq -r .[0].Config.Env | grep L3DHOSTDIR | cut -d'=' -f 2 | cut -d'"' -f 1
fi
#!/bin/bash
function getConfig() {
if [[ "$L3D_COMPOSE" != "[]" ]]; then
COMPOSE_PROJECT_NAME=$(yq .name $L3D_COMPOSE)
PHP_VERSION=$(yq .services.php.image $L3D_COMPOSE | cut -d':' -f 2)
rm "$L3D_COMPOSE"
fi
if [[ ! -n ${PHP_VERSION} ]]; then
while true; do
DEFAULT=8.1
......@@ -23,24 +28,6 @@ function getConfig() {
esac
done
fi
if [[ ! -n ${COMPOSER_DOWNGRADE} ]]; then
while true; do
DEFAULT=0
read -p "Do you want to downgrade Composer to version 1 - 0=No, 1=Yes? [No] " VALUE
if [[ "x$VALUE" == "x" ]]; then
COMPOSER_DOWNGRADE=$DEFAULT
else
COMPOSER_DOWNGRADE=$VALUE
fi
case ${COMPOSER_DOWNGRADE} in
0) break ;;
1) break ;;
no|NO|No) COMPOSER_DOWNGRADE=0 ;;
yes|YES|Yes) COMPOSER_DOWNGRADE=1 ;;
*) echo "Only 1 or 0 are valid responses." ;;
esac
done
fi
if [[ ! -n ${COMPOSE_PROJECT_NAME} ]]; then
DEFAULT=$(basename $WORKDIR)
read -p "Name your project (used as subdomain): [$DEFAULT]" VALUE
......@@ -64,9 +51,9 @@ function startContainer() {
if [[ $COMPOSE_PROJECT_NAME == "." ]]; then
mode=NONPRESISTENT
else
ID=$(docker container ls --all -q -f name=^${COMPOSE_PROJECT_NAME}_l3d$)
ID=$(docker container ls --all -q -f name=^${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d$)
if [[ -n ${ID} ]]; then
docker start ${COMPOSE_PROJECT_NAME}_l3d
docker start ${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d
mode=REGULAR
fi
fi
......@@ -80,13 +67,17 @@ function startContainer() {
--env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}
--env COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE}
--env PHP_VERSION=${PHP_VERSION}
--env SSH_AUTH_SOCK=${SSHAUTHSOCK}
--volume ${L3DDOCKERHOST}:/var/run/docker.sock
--volume ${WORKDIR}:/drupal
--volume ${SSHAUTH}:${SSHAUTHSOCK}
--volume ${HOMEDIR}:/home/${USERNAME}
--workdir /drupal
)
if [[ -n "$SSHAUTH" ]]; then
start_params+=(
--env SSH_AUTH_SOCK=${SSHAUTHSOCK}
--volume ${SSHAUTH}:${SSHAUTHSOCK}
)
fi
if [[ ${L3DHOSTOS} != Darwin ]]; then
start_params+=(
--user ${USERID}:${GROUPID}
......@@ -107,7 +98,7 @@ function startContainer() {
start_params+=(
--hostname ${COMPOSE_PROJECT_NAME}-l3d
)
docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \
docker run --name ${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d -dt \
"${start_params[@]}" \
--restart unless-stopped \
registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${L3DVERSION}
......@@ -116,8 +107,12 @@ function startContainer() {
--hostname "L3D"
--env HOMEDIR=${HOMEDIR}
--env WORKDIR=${WORKDIR}
--env SSHAUTH=${SSHAUTH}
)
if [[ -n "$SSHAUTH" ]]; then
start_params+=(
--env SSHAUTH=${SSHAUTH}
)
fi
docker run -it --rm \
"${start_params[@]}" \
registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${L3DVERSION} \
......@@ -129,8 +124,12 @@ function startContainer() {
start_params=(
--env HOMEDIR=${HOMEDIR}
--env WORKDIR=${WORKDIR}
--env SSHAUTH=${SSHAUTH}
)
if [[ -n "$SSHAUTH" ]]; then
start_params+=(
--env SSHAUTH=${SSHAUTH}
)
fi
if [[ "$PHP_VERSION" != "unknown" ]]; then
start_params+=(
--env PHP_VERSION=${PHP_VERSION}
......@@ -138,7 +137,7 @@ function startContainer() {
fi
docker exec -it \
"${start_params[@]}" \
${COMPOSE_PROJECT_NAME}_l3d \
${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d \
/usr/local/bin/.start
exitContainer
fi
......@@ -148,7 +147,7 @@ if [[ -n $1 ]]; then
if [[ "$1" == "." ]]; then
COMPOSE_PROJECT_NAME=.
else
ID=$(docker container ls --all -q -f name=^$1_l3d$)
ID=$(docker container ls --all -q -f name=^$1_${USERNAME}_l3d$)
if [[ -n ${ID} ]]; then
PHP_VERSION=unknown
COMPOSE_PROJECT_NAME=$1
......
......@@ -4,7 +4,6 @@ GROUPID=$(id -g)
GROUPIDS=$(id -G)
L3DHOSTOS="$(uname -s)"
L3DDOCKERHOST=/var/run/docker.sock
SSHAUTH=${SSH_AUTH_SOCK}
SSHAUTHSOCK=/ssh-agent
USERID=$(id -u)
USERNAME=${USER}
......@@ -25,9 +24,11 @@ case "${L3DHOSTOS}" in
USERNAME=root
# This variable is used to access the ssh agent on MacOS.
SSHAUTHMAGICPATH="/run/host-services/ssh-auth.sock"
SSHAUTH=${SSHAUTHMAGICPATH}
SSHAUTHSOCK=${SSHAUTHMAGICPATH}
if [[ -f "/run/host-services/ssh-auth.sock" ]]; then
SSHAUTHMAGICPATH="/run/host-services/ssh-auth.sock"
SSH_AUTH_SOCK=${SSHAUTHMAGICPATH}
SSHAUTHSOCK=${SSHAUTHMAGICPATH}
fi
if [[ $? > 0 ]]; then
exit $?
fi
......@@ -80,7 +81,7 @@ fi
# Chenge directory to the existing project root, if available.
if [[ -n $1 ]]; then
ID=$(docker container ls --all -q -f name=^$1_l3d$)
ID=$(docker container ls --all -q -f name=^$1_${USERNAME}_l3d$)
if [[ -n ${ID} ]]; then
cd $(docker exec ${ID} php /usr/local/bin/volume.php --none)
fi
......@@ -98,6 +99,11 @@ if [[ -f ".lakedrops.yml" ]]; then
L3D_CONFIG=/tmp/${RANDOM}.lakedrops.yml
docker cp .lakedrops.yml l3drun:$L3D_CONFIG >/dev/null 2>&1
fi
L3D_COMPOSE=[]
if [[ -f "docker-compose.yml" ]]; then
L3D_COMPOSE=/tmp/${RANDOM}-docker-compose.yml
docker cp docker-compose.yml l3drun:$L3D_COMPOSE >/dev/null 2>&1
fi
# Create project container parameters
project_params=(
......@@ -109,13 +115,18 @@ project_params=(
--env L3DSHELL=${L3DSHELL}
--env L3D_ALWAYS_CLEANUP=${L3D_ALWAYS_CLEANUP}
--env L3D_CONFIG=${L3D_CONFIG}
--env L3D_COMPOSE=${L3D_COMPOSE}
--env WORKDIR=${PWD}
--env SSHAUTH=${SSHAUTH}
--env SSHAUTHSOCK=${SSHAUTHSOCK}
--env PHP_VERSION=${PHP_VERSION}
--env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}
--env COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE}
)
if [[ -n "$SSH_AUTH_SOCK" ]]; then
project_params+=(
--env SSHAUTH=${SSH_AUTH_SOCK}
--env SSHAUTHSOCK=${SSHAUTHSOCK}
)
fi
# Execute project container
docker exec -it \
......
......@@ -32,20 +32,22 @@ function restoreEnvFile {
if [[ "${COMPOSE_PROJECT_NAME}" == "." ]]; then
return
fi
if [[ -n ${PHP_VERSION} ]]; then
echo "PHP_VERSION=${PHP_VERSION}" >>.env
fi
if [[ -n ${COMPOSE_PROJECT_NAME} ]]; then
echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env
fi
if [[ -n ${COMPOSER_DOWNGRADE} ]]; then
echo "COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE}" >>.env
fi
if [[ -f ".env" ]]; then
# shellcheck disable=SC2046
# shellcheck disable=SC2094
# shellcheck disable=SC2002
env -i $(cat .env | xargs) >.env
if [[ -f ".env" && -w ".env" ]] || [[ ! -f ".env" && -w . ]]; then
if [[ -n ${PHP_VERSION} ]]; then
echo "PHP_VERSION=${PHP_VERSION}" >>.env
fi
if [[ -n ${COMPOSE_PROJECT_NAME} ]]; then
echo "COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}" >>.env
fi
if [[ -n ${COMPOSER_DOWNGRADE} ]]; then
echo "COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE}" >>.env
fi
if [[ -f ".env" ]]; then
# shellcheck disable=SC2046
# shellcheck disable=SC2094
# shellcheck disable=SC2002
env -i $(cat .env | xargs) >.env
fi
fi
}
......@@ -207,30 +209,36 @@ function initialSetup {
}
function setupAhoy {
if [[ ! -f .ahoy.yml ]]; then
if [[ ! -f .ahoy.yml && -w . ]]; then
echo "ahoyapi: v2" >.ahoy.yml
echo "commands:" >>.ahoy.yml
fi
if [[ ! -L .ahoy.l3d ]]; then
if [[ ! -L .ahoy.l3d && -w . ]]; then
ln -s /etc/ahoy .ahoy.l3d
fi
if [[ -f .gitignore ]]; then
EXISTING=$(cat .gitignore | grep "^/.ahoy.l3d$")
if [[ -z ${EXISTING} ]]; then
echo "/.ahoy.l3d" >>.gitignore
if [[ -f ".gitignore" && -w ".gitignore" ]] || [[ ! -f ".gitignore" && -w . ]]; then
echo "/.ahoy.l3d" >>.gitignore
fi
fi
fi
EXISTING=$(cat .ahoy.yml | grep "^ changelog:")
if [[ -z ${EXISTING} ]]; then
echo " changelog:" >>.ahoy.yml
echo " imports:" >>.ahoy.yml
echo " - ./.ahoy.l3d/changelog.yml" >>.ahoy.yml
echo " usage: Changelog tools." >>.ahoy.yml
if [[ -f ".ahoy.yml" && -w ".ahoy.yml" ]] || [[ ! -f ".ahoy.yml" && -w . ]]; then
EXISTING=$(cat .ahoy.yml | grep "^ changelog:")
if [[ -z ${EXISTING} ]]; then
echo " changelog:" >>.ahoy.yml
echo " imports:" >>.ahoy.yml
echo " - ./.ahoy.l3d/changelog.yml" >>.ahoy.yml
echo " usage: Changelog tools." >>.ahoy.yml
fi
fi
}
if [[ -n ${PHP_VERSION} ]]; then
echo "PHP_VERSION=${PHP_VERSION}" >>.env
if [[ -f ".env" && -w ".env" ]] || [[ ! -f ".env" && -w . ]]; then
echo "PHP_VERSION=${PHP_VERSION}" >>.env
fi
fi
readEnv
# Validate PHP version
......@@ -242,7 +250,7 @@ if [[ "$INSTALLED_PHP_VERSION" != "$PHP_VERSION" ]]; then
if [[ "${COMPOSE_PROJECT_NAME}" != "." ]]; then
echo -e "\\033[31m Killed the outdated container, please start again !!! \\033[0m"
echo -e "\\033[31m ===================================================== \\033[0m"
docker rm -f ${COMPOSE_PROJECT_NAME}_l3d
docker rm -f ${COMPOSE_PROJECT_NAME}_${USERNAME}_l3d
fi
fi
if [[ "$COMPOSER_DOWNGRADE" == "1" ]]; then
......@@ -278,8 +286,8 @@ if [[ "${COMPOSE_PROJECT_NAME}" != "." ]]; then
echo "#!/bin/sh" > .git/hooks/post-checkout
chmod +x .git/hooks/post-checkout
fi
OLDCOMMAND='docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env'
NEWCOMMAND='RUNNING=$(docker container ls --all -q -f name='${COMPOSE_PROJECT_NAME}'_l3d);if [ "x$RUNNING" != "x" ];then docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env;fi'
OLDCOMMAND='docker exec '${COMPOSE_PROJECT_NAME}'_'${USERNAME}'_l3d /usr/local/bin/update-env'
NEWCOMMAND='RUNNING=$(docker container ls --all -q -f name='${COMPOSE_PROJECT_NAME}'_'${USERNAME}_'l3d);if [ "x$RUNNING" != "x" ];then docker exec '${COMPOSE_PROJECT_NAME}'_l3d /usr/local/bin/update-env;fi'
OLD_HOOK_DEFINED=$(grep "$OLDCOMMAND" .git/hooks/post-checkout)
NEW_HOOK_DEFINED=$(grep "$NEWCOMMAND" .git/hooks/post-checkout)
if [[ "x$OLD_HOOK_DEFINED" = "x" ]]; then
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment