This commit is contained in:
Jackson Delahunt 2019-03-18 15:02:56 +11:00
parent 851a890550
commit 01fefe5f48
21 changed files with 60 additions and 68 deletions

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Extract credentials from environment
if [ ! -z "$DESKTOP_ENVIRONMENT_GOOGLE_CREDENTIALS" ]; then

View file

@ -9,12 +9,6 @@ ENV BASE_USER stemn
ENV USER jackson
ENV HOME /home/$USER
# User environment configuration
ARG DESKTOP_ENVIRONMENT_GIT_EMAIL
ARG DESKTOP_ENVIRONMENT_GIT_NAME
ENV STEMN_GIT_EMAIL "$DESKTOP_ENVIRONMENT_GIT_EMAIL"
ENV STEMN_GIT_NAME "$DESKTOP_ENVIRONMENT_GIT_NAME"
# Remove base user files
RUN rm -rf /$BASE_USER

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Start a desktop environment detached from this shell
nohup gosu $DESKTOP_ENVIRONMENT_USER alacritty </dev/null >/dev/null 2>&1 &

View file

@ -1,13 +1,11 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
docker build \
--build-arg DESKTOP_CONTAINER_BUILD_DATE=$(date +%s) \
--build-arg DESKTOP_CONTAINER_GIT_SHA=$(git --git-dir $REPO_ROOT/.git rev-parse HEAD | cut -b 1-7) \
--build-arg DESKTOP_ENVIRONMENT_GIT_EMAIL=$DESKTOP_ENVIRONMENT_GIT_EMAIL \
--build-arg DESKTOP_ENVIRONMENT_GIT_NAME=$DESKTOP_ENVIRONMENT_GIT_NAME \
--file docker/Dockerfile.kde \
--tag $DESKTOP_ENVIRONMENT_REGISTRY/$DESKTOP_ENVIRONMENT_CONTAINER_NAME:kde \
$REPO_ROOT/docker

View file

@ -1,13 +1,11 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
docker build \
--build-arg DESKTOP_CONTAINER_BUILD_DATE=$(date +%s) \
--build-arg DESKTOP_CONTAINER_GIT_SHA=$(git --git-dir $REPO_ROOT/.git rev-parse HEAD | cut -b 1-7) \
--build-arg DESKTOP_ENVIRONMENT_GIT_EMAIL="$DESKTOP_ENVIRONMENT_GIT_EMAIL" \
--build-arg DESKTOP_ENVIRONMENT_GIT_NAME="$DESKTOP_ENVIRONMENT_GIT_NAME" \
--file $REPO_ROOT/docker/Dockerfile \
--tag $DESKTOP_ENVIRONMENT_REGISTRY/$DESKTOP_ENVIRONMENT_CONTAINER_NAME:$DESKTOP_ENVIRONMENT_CONTAINER_TAG \
--tag $DESKTOP_ENVIRONMENT_REGISTRY/$DESKTOP_ENVIRONMENT_CONTAINER_NAME:latest \

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
SECRETS_VOLUMES=$(cat $REPO_ROOT/docker/scripts/clean*.sh | grep DESKTOP_ | grep -v SECRETS_ | cut -f 2 -d ' ' | sort | uniq)

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Remove existing cloned repository
docker run \

View file

@ -1,52 +1,52 @@
# Desktop environment repository information
export DESKTOP_ENVIRONMENT_CONTAINER_NAME=desktop-environment
export DESKTOP_ENVIRONMENT_CONTAINER_TAG=${DESKTOP_ENVIRONMENT_CONTAINER_TAG-$(git rev-parse --abbrev-ref HEAD)}
export DESKTOP_ENVIRONMENT_REGISTRY=sabrehagen
echo export DESKTOP_ENVIRONMENT_CONTAINER_NAME=desktop-environment
echo export DESKTOP_ENVIRONMENT_CONTAINER_TAG=${DESKTOP_ENVIRONMENT_CONTAINER_TAG-$(git rev-parse --abbrev-ref HEAD)}
echo export DESKTOP_ENVIRONMENT_REGISTRY=sabrehagen
# Desktop environment user configuration
export DESKTOP_ENVIRONMENT_GIT_EMAIL=jackson@stemn.com
export DESKTOP_ENVIRONMENT_GIT_NAME="Jackson Delahunt"
export DESKTOP_ENVIRONMENT_USER=jackson
export DESKTOP_ENVIRONMENT_USER_HOME=/home/$DESKTOP_ENVIRONMENT_USER
export DESKTOP_ENVIRONMENT_USER_ID=1000
echo export DESKTOP_ENVIRONMENT_GIT_EMAIL=jackson@stemn.com
echo export DESKTOP_ENVIRONMENT_GIT_NAME="Jackson Delahunt"
echo export DESKTOP_ENVIRONMENT_USER=jackson
echo export DESKTOP_ENVIRONMENT_USER_HOME=/home/$DESKTOP_ENVIRONMENT_USER
echo export DESKTOP_ENVIRONMENT_USER_ID=1000
# Desktop environment cloudflare configuration
export DESKTOP_ENVIRONMENT_CLOUDFLARE_DOMAIN=jacksondelahunt.com
export DESKTOP_ENVIRONMENT_CLOUDFLARE_EMAIL=jackson@jacksondelahunt.com
echo export DESKTOP_ENVIRONMENT_CLOUDFLARE_DOMAIN=jacksondelahunt.com
echo export DESKTOP_ENVIRONMENT_CLOUDFLARE_EMAIL=jackson@jacksondelahunt.com
# Desktop environment docker configuration
export DESKTOP_ENVIRONMENT_DOCKER_NETWORK=$DESKTOP_ENVIRONMENT_REGISTRY-$DESKTOP_ENVIRONMENT_CONTAINER_NAME
export DESKTOP_ENVIRONMENT_DOCKER_REPOSITORY=/$DESKTOP_ENVIRONMENT_CONTAINER_NAME
echo export DESKTOP_ENVIRONMENT_DOCKER_NETWORK=$DESKTOP_ENVIRONMENT_REGISTRY-$DESKTOP_ENVIRONMENT_CONTAINER_NAME
echo export DESKTOP_ENVIRONMENT_DOCKER_REPOSITORY=/$DESKTOP_ENVIRONMENT_CONTAINER_NAME
# Desktop environment application cache volumes
export DESKTOP_ENVIRONMENT_CACHE_CERTIFICATES=$DESKTOP_ENVIRONMENT_USER_HOME/.pki
export DESKTOP_ENVIRONMENT_CACHE_CHROME=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/google-chrome
export DESKTOP_ENVIRONMENT_CACHE_CODE=$DESKTOP_ENVIRONMENT_USER_HOME/.vscode
export DESKTOP_ENVIRONMENT_CACHE_GDRIVE=$DESKTOP_ENVIRONMENT_USER_HOME/.gdfuse
export DESKTOP_ENVIRONMENT_CACHE_SECRETS=$DESKTOP_ENVIRONMENT_USER_HOME/.secrets
export DESKTOP_ENVIRONMENT_CACHE_SIGNAL=$DESKTOP_ENVIRONMENT_USER_HOME/.config/Signal
export DESKTOP_ENVIRONMENT_CACHE_SSH=$DESKTOP_ENVIRONMENT_USER_HOME/.ssh
export DESKTOP_ENVIRONMENT_CACHE_STEMN=$DESKTOP_ENVIRONMENT_USER_HOME/.stemn
export DESKTOP_ENVIRONMENT_CACHE_VCSH=$DESKTOP_ENVIRONMENT_USER_HOME/.config/vcsh/repo.d
export DESKTOP_ENVIRONMENT_CACHE_VCSH_PRIVATE=$DESKTOP_ENVIRONMENT_USER_HOME/.config/vcsh/repo-private.d
export DESKTOP_ENVIRONMENT_CACHE_YARN=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/yarn
export DESKTOP_ENVIRONMENT_CACHE_ZOOM=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/zoom
export DESKTOP_ENVIRONMENT_CACHE_ZSH=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/zsh
echo export DESKTOP_ENVIRONMENT_CACHE_CERTIFICATES=$DESKTOP_ENVIRONMENT_USER_HOME/.pki
echo export DESKTOP_ENVIRONMENT_CACHE_CHROME=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/google-chrome
echo export DESKTOP_ENVIRONMENT_CACHE_CODE=$DESKTOP_ENVIRONMENT_USER_HOME/.vscode
echo export DESKTOP_ENVIRONMENT_CACHE_GDRIVE=$DESKTOP_ENVIRONMENT_USER_HOME/.gdfuse
echo export DESKTOP_ENVIRONMENT_CACHE_SECRETS=$DESKTOP_ENVIRONMENT_USER_HOME/.secrets
echo export DESKTOP_ENVIRONMENT_CACHE_SIGNAL=$DESKTOP_ENVIRONMENT_USER_HOME/.config/Signal
echo export DESKTOP_ENVIRONMENT_CACHE_SSH=$DESKTOP_ENVIRONMENT_USER_HOME/.ssh
echo export DESKTOP_ENVIRONMENT_CACHE_STEMN=$DESKTOP_ENVIRONMENT_USER_HOME/.stemn
echo export DESKTOP_ENVIRONMENT_CACHE_VCSH=$DESKTOP_ENVIRONMENT_USER_HOME/.config/vcsh/repo.d
echo export DESKTOP_ENVIRONMENT_CACHE_VCSH_PRIVATE=$DESKTOP_ENVIRONMENT_USER_HOME/.config/vcsh/repo-private.d
echo export DESKTOP_ENVIRONMENT_CACHE_YARN=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/yarn
echo export DESKTOP_ENVIRONMENT_CACHE_ZOOM=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/zoom
echo export DESKTOP_ENVIRONMENT_CACHE_ZSH=$DESKTOP_ENVIRONMENT_USER_HOME/.cache/zsh
# Desktop environment application state volumes
export DESKTOP_ENVIRONMENT_STATE_CHROME=$DESKTOP_ENVIRONMENT_USER_HOME/.config/google-chrome
export DESKTOP_ENVIRONMENT_STATE_CODE=$DESKTOP_ENVIRONMENT_USER_HOME/.config/Code
export DESKTOP_ENVIRONMENT_STATE_GITHUB=$DESKTOP_ENVIRONMENT_USER_HOME/.config/github
export DESKTOP_ENVIRONMENT_STATE_JUMP=$DESKTOP_ENVIRONMENT_USER_HOME/.jump
export DESKTOP_ENVIRONMENT_STATE_MUSIKCUBE=$DESKTOP_ENVIRONMENT_USER_HOME/.musikcube
export DESKTOP_ENVIRONMENT_STATE_TRAEFIK=$DESKTOP_ENVIRONMENT_USER_HOME/.traefik
export DESKTOP_ENVIRONMENT_STATE_ZOOM=$DESKTOP_ENVIRONMENT_USER_HOME/.zoom
echo export DESKTOP_ENVIRONMENT_STATE_CHROME=$DESKTOP_ENVIRONMENT_USER_HOME/.config/google-chrome
echo export DESKTOP_ENVIRONMENT_STATE_CODE=$DESKTOP_ENVIRONMENT_USER_HOME/.config/Code
echo export DESKTOP_ENVIRONMENT_STATE_GITHUB=$DESKTOP_ENVIRONMENT_USER_HOME/.config/github
echo export DESKTOP_ENVIRONMENT_STATE_JUMP=$DESKTOP_ENVIRONMENT_USER_HOME/.jump
echo export DESKTOP_ENVIRONMENT_STATE_MUSIKCUBE=$DESKTOP_ENVIRONMENT_USER_HOME/.musikcube
echo export DESKTOP_ENVIRONMENT_STATE_TRAEFIK=$DESKTOP_ENVIRONMENT_USER_HOME/.traefik
echo export DESKTOP_ENVIRONMENT_STATE_ZOOM=$DESKTOP_ENVIRONMENT_USER_HOME/.zoom
# Desktop environment user state volumes
export DESKTOP_ENVIRONMENT_USER_DOCUMENTS=$DESKTOP_ENVIRONMENT_USER_HOME/documents
export DESKTOP_ENVIRONMENT_USER_DOWNLOADS=$DESKTOP_ENVIRONMENT_USER_HOME/downloads
export DESKTOP_ENVIRONMENT_USER_MUSIC=$DESKTOP_ENVIRONMENT_USER_HOME/music
export DESKTOP_ENVIRONMENT_USER_PICTURES=$DESKTOP_ENVIRONMENT_USER_HOME/pictures
export DESKTOP_ENVIRONMENT_USER_REPOSITORIES=$DESKTOP_ENVIRONMENT_USER_HOME/repositories
export DESKTOP_ENVIRONMENT_USER_TORRENTS=$DESKTOP_ENVIRONMENT_USER_HOME/torrents
export DESKTOP_ENVIRONMENT_USER_VIDEOS=$DESKTOP_ENVIRONMENT_USER_HOME/videos
echo export DESKTOP_ENVIRONMENT_USER_DOCUMENTS=$DESKTOP_ENVIRONMENT_USER_HOME/documents
echo export DESKTOP_ENVIRONMENT_USER_DOWNLOADS=$DESKTOP_ENVIRONMENT_USER_HOME/downloads
echo export DESKTOP_ENVIRONMENT_USER_MUSIC=$DESKTOP_ENVIRONMENT_USER_HOME/music
echo export DESKTOP_ENVIRONMENT_USER_PICTURES=$DESKTOP_ENVIRONMENT_USER_HOME/pictures
echo export DESKTOP_ENVIRONMENT_USER_REPOSITORIES=$DESKTOP_ENVIRONMENT_USER_HOME/repositories
echo export DESKTOP_ENVIRONMENT_USER_TORRENTS=$DESKTOP_ENVIRONMENT_USER_HOME/torrents
echo export DESKTOP_ENVIRONMENT_USER_VIDEOS=$DESKTOP_ENVIRONMENT_USER_HOME/videos

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
docker exec \
--interactive \

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
docker exec \
--interactive \

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Remove all non desktop environment containers
docker ps -a | \

View file

@ -1,6 +1,6 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
docker push $DESKTOP_ENVIRONMENT_REGISTRY/$DESKTOP_ENVIRONMENT_CONTAINER_NAME:$DESKTOP_ENVIRONMENT_CONTAINER_TAG

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Start traefik to expose the xpra web client publicly
docker exec \

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Kill existing xpra server
docker ps -a | grep xpra | cut -c 1-15 | xargs docker rm -f

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Ensure volumes that can be removed are owned before starting
$REPO_ROOT/docker/scripts/clean-ownership.sh
@ -13,6 +13,8 @@ docker run \
--env DBUS_SESSION_BUS_ADDRESS \
--env DESKTOP_ENVIRONMENT_USER \
--env DISPLAY=${DISPLAY-:0} \
--env GIT_COMMITTER_EMAIL=$DESKTOP_ENVIRONMENT_GIT_EMAIL \
--env GIT_COMMITTER_NAME=$DESKTOP_ENVIRONMENT_GIT_NAME \
--group-add audio \
--group-add docker \
--group-add video \

View file

@ -1,6 +1,6 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
docker rm -f $DESKTOP_ENVIRONMENT_CONTAINER_NAME

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
DESKTOP_ENVIRONMENT_VOLUMES=$(cat $REPO_ROOT/docker/scripts/environment.sh | grep echo | grep -v _ID | grep -E "CACHE|STATE|USER_" | cut -b 6- | cut -f 1 -d =)

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
VOLUME_NAME=$1

View file

@ -7,7 +7,7 @@ fi
REPO_ROOT=$(dirname $(readlink -f $0))/..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Conventional docker group id
DOCKER_GID=999

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Clone the desktop environment into a local docker volume
$REPO_ROOT/docker/scripts/clone.sh

View file

@ -1,7 +1,7 @@
REPO_ROOT=$(dirname $(readlink -f $0))/../..
# Export desktop environment shell configuration
eval "$(cat $REPO_ROOT/docker/scripts/environment.sh)"
eval "$($REPO_ROOT/docker/scripts/environment.sh)"
# Authenticate with cloud service provider
$REPO_ROOT/credentials/authenticate.sh