diff --git a/Dockerfile b/Dockerfile index 88d6b97..a9c3e53 100644 --- a/Dockerfile +++ b/Dockerfile @@ -58,9 +58,6 @@ RUN wget -O rescuetime.deb -nv https://www.rescuetime.com/installers/rescuetime_ dpkg -i rescuetime.deb || apt --fix-broken --yes install && \ rm rescuetime.deb -# Remove mock sudo -RUN rm /usr/local/bin/sudo - # Install operating system utilities RUN apt install --yes \ sudo \ @@ -81,7 +78,7 @@ RUN git clone https://github.com/sabrehagen/dotfiles-zsh # Add program configurations COPY config/tmuxinator $HOME/.config/tmuxinator COPY config/zsh/.zshenv $HOME/.zshenv.desktop -RUN echo 'source .zshenv.desktop' >> $HOME/.zshenv +RUN echo "source $HOME/.zshenv.desktop" >> $HOME/.zshenv # Add custom binaries COPY bin /usr/local/bin @@ -94,7 +91,11 @@ ARG CONTAINER_BUILD_DATE ARG CONTAINER_GIT_SHA ENV CONTAINER_BUILD_DATE $CONTAINER_BUILD_DATE ENV CONTAINER_GIT_SHA $CONTAINER_GIT_SHA +ENV CONTAINER_IMAGE_NAME sabrehagen/desktop-environment # Become the desktop user USER $USER WORKDIR $HOME + +# Start the long-lived tmux session +ENTRYPOINT zsh -c "tmux -S $HOME/.tmux/tmux.sock new-session -d -s $STEMN_TMUX_SESSION && sleep infinity" diff --git a/config/zsh/.zshenv b/config/zsh/.zshenv index f0d67e8..c577fea 100644 --- a/config/zsh/.zshenv +++ b/config/zsh/.zshenv @@ -1,4 +1,2 @@ -# Print container build info -CURRENT_DATE=$(date +%s) -TIME_SINCE_CONTAINER_BUILD=$(echo $((CURRENT_DATE-CONTAINER_BUILD_DATE)) | awk '{print int($1/(60 * 60 * 24))" days "int($1/(60 * 60))" hrs "int($1/60)" mins "int($1%60)" secs ago"}') -echo "\nContainer built $TIME_SINCE_CONTAINER_BUILD | sha $CONTAINER_GIT_SHA" +# Change to the most frequently used directory +cd $HOME/repositories/stemn/stemn-backend diff --git a/scripts/clean.sh b/scripts/clean.sh index bfc54a2..3b9904c 100755 --- a/scripts/clean.sh +++ b/scripts/clean.sh @@ -1,6 +1,6 @@ REPO_ROOT=$(dirname $(realpath $0))/.. -# Stop the running environment so there are no containers using the volumes -sh $REPO_ROOT/scripts/stop.sh +# Stop the running environment so there are no containers using the volumes, ignoring errors if it does not exist +sh $REPO_ROOT/scripts/stop.sh 2>/dev/null docker volume rm JACKSON_HOME diff --git a/scripts/refresh.sh b/scripts/refresh.sh index f2fbc8f..1583c3d 100755 --- a/scripts/refresh.sh +++ b/scripts/refresh.sh @@ -1,5 +1,15 @@ REPO_ROOT=$(dirname $(realpath $0))/.. +# Rebuild the desktop environment sh $REPO_ROOT/scripts/build.sh -sh $REPO_ROOT/scripts/restart.sh + +# Reset the desktop environment state +sh $REPO_ROOT/scripts/stop.sh +sh $REPO_ROOT/scripts/clean.sh +sh $REPO_ROOT/scripts/start.sh + +# Race condition causes new shell to fail if started too soon after container restart above +sleep 1 + +# Enter the desktop environment sh $REPO_ROOT/scripts/shell.sh diff --git a/scripts/restart.sh b/scripts/restart.sh index f701fba..ed63c02 100755 --- a/scripts/restart.sh +++ b/scripts/restart.sh @@ -1,5 +1,4 @@ REPO_ROOT=$(dirname $(realpath $0))/.. sh $REPO_ROOT/scripts/stop.sh -sh $REPO_ROOT/scripts/clean.sh sh $REPO_ROOT/scripts/start.sh