mirror of
https://github.com/kingomarnajjar/desktop-environment.git
synced 2026-07-26 06:37:21 +10:00
merge
This commit is contained in:
commit
7c870af26a
8 changed files with 64 additions and 28 deletions
19
Dockerfile
19
Dockerfile
|
|
@ -24,6 +24,13 @@ RUN usermod \
|
|||
--login $USER \
|
||||
$BASE_USER
|
||||
|
||||
# Install user utilities
|
||||
RUN apt install --yes \
|
||||
software-properties-common \
|
||||
vcsh \
|
||||
vlc \
|
||||
xinput
|
||||
|
||||
# Install chrome
|
||||
RUN apt update && apt install --yes \
|
||||
apt-transport-https \
|
||||
|
|
@ -63,11 +70,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
|
||||
|
||||
# Install user utilities
|
||||
RUN apt install --yes \
|
||||
vcsh \
|
||||
xinput
|
||||
|
||||
# Enable password-less sudo for user
|
||||
RUN echo "$USER ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
||||
|
||||
|
|
@ -95,11 +97,8 @@ RUN zsh -c "cp -r /$BASE_USER/home/{.gitconfig,.motd,.tmux.conf,.zshenv,.zshrc}
|
|||
RUN alias https-to-git="sed 's;https://github.com/\(.*\);git@github.com:\1.git;'"
|
||||
RUN vcsh clone https://github.com/sabrehagen/dotfiles-alacritty && \
|
||||
vcsh clone https://github.com/sabrehagen/dotfiles-code && \
|
||||
vcsh clone https://github.com/sabrehagen/dotfiles-scripts
|
||||
|
||||
# Install yarn utilities
|
||||
RUN yarn global add \
|
||||
clipboard-cli
|
||||
vcsh clone https://github.com/sabrehagen/dotfiles-scripts && \
|
||||
vcsh clone https://github.com/sabrehagen/dotfiles-vlc
|
||||
|
||||
# Add program configurations
|
||||
COPY config/tmuxinator $HOME/.config/tmuxinator
|
||||
|
|
|
|||
9
README.md
Normal file
9
README.md
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# Desktop Environment
|
||||
|
||||
A full desktop environment packaged into a Docker container.
|
||||
|
||||
## Applications
|
||||
|
||||
- Google Chrome
|
||||
- RescueTime
|
||||
- VS Code
|
||||
|
|
@ -4,8 +4,13 @@ if [ $USER != "root" ]; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
REPO_ROOT=$(dirname $(realpath $0))/..
|
||||
|
||||
# Export development environment shell configuration
|
||||
export $(sh $REPO_ROOT/scripts/environment.sh)
|
||||
|
||||
# Host user configuration
|
||||
HOST_USER=jackson
|
||||
HOST_USER=$DESKTOP_ENVIRONMENT_USER
|
||||
HOST_USER_ID=1000
|
||||
HOST_HOME=/$HOST_USER/home
|
||||
|
||||
|
|
@ -31,7 +36,8 @@ xhost local:docker
|
|||
|
||||
# Install utilities
|
||||
apt update && apt install --yes && \
|
||||
docker.io && \
|
||||
docker.io \
|
||||
ksshaskpass \
|
||||
vcsh
|
||||
|
||||
# Enable password-less sudo for the host user
|
||||
|
|
@ -52,6 +58,9 @@ wget -O alacritty.deb https://github.com/jwilm/alacritty/releases/download/v0.2.
|
|||
dpkg -i alacritty.deb && \
|
||||
rm alacritty.deb
|
||||
|
||||
# Start the desktop environment on system start
|
||||
echo "@reboot $HOST_HOME/repositories/$DESKTOP_ENVIRONMENT_REGISTRY/desktop-environment/scripts/start.sh" >> /etc/crontab
|
||||
|
||||
# Take ownership of all files under the user's directory
|
||||
chown $HOST_USER:$HOST_USER /$HOST_USER
|
||||
|
||||
|
|
|
|||
|
|
@ -3,28 +3,36 @@ REPO_ROOT=$(dirname $(realpath $0))/..
|
|||
# Export development environment shell configuration
|
||||
export $(sh $REPO_ROOT/scripts/environment.sh)
|
||||
|
||||
# Give the container user ownership of the DESKTOP_ENVIRONMENT_CACHE_YARN volume
|
||||
docker run \
|
||||
--rm \
|
||||
--user root \
|
||||
--volume DESKTOP_ENVIRONMENT_CACHE_YARN:$DESKTOP_ENVIRONMENT_CACHE_YARN \
|
||||
sabrehagen/desktop-environment:latest \
|
||||
chown -R $DESKTOP_ENVIRONMENT_USER:$DESKTOP_ENVIRONMENT_USER $DESKTOP_ENVIRONMENT_CACHE_YARN
|
||||
|
||||
# Give the container user ownership of the DESKTOP_ENVIRONMENT_CACHE_CHROME volume
|
||||
docker run \
|
||||
--rm \
|
||||
--user root \
|
||||
--volume DESKTOP_ENVIRONMENT_CACHE_CHROME:$DESKTOP_ENVIRONMENT_CACHE_CHROME \
|
||||
sabrehagen/desktop-environment:latest \
|
||||
$DESKTOP_ENVIRONMENT_USER/desktop-environment:latest \
|
||||
chown -R $DESKTOP_ENVIRONMENT_USER:$DESKTOP_ENVIRONMENT_USER $DESKTOP_ENVIRONMENT_CACHE_CHROME
|
||||
|
||||
# Give the container user ownership of the DESKTOP_ENVIRONMENT_CACHE_YARN volume
|
||||
docker run \
|
||||
--rm \
|
||||
--user root \
|
||||
--volume DESKTOP_ENVIRONMENT_CACHE_YARN:$DESKTOP_ENVIRONMENT_CACHE_YARN \
|
||||
$DESKTOP_ENVIRONMENT_USER/desktop-environment:latest \
|
||||
chown -R $DESKTOP_ENVIRONMENT_USER:$DESKTOP_ENVIRONMENT_USER $DESKTOP_ENVIRONMENT_CACHE_YARN
|
||||
|
||||
# Give the container user ownership of the DESKTOP_ENVIRONMENT_CACHE_ZSH volume
|
||||
docker run \
|
||||
--rm \
|
||||
--user root \
|
||||
--volume DESKTOP_ENVIRONMENT_CACHE_ZSH:$DESKTOP_ENVIRONMENT_CACHE_ZSH \
|
||||
$DESKTOP_ENVIRONMENT_USER/desktop-environment:latest \
|
||||
chown -R $DESKTOP_ENVIRONMENT_USER:$DESKTOP_ENVIRONMENT_USER $DESKTOP_ENVIRONMENT_CACHE_ZSH
|
||||
|
||||
# Give the container user ownership of the DESKTOP_ENVIRONMENT_CONFIG_CHROME volume
|
||||
docker run \
|
||||
--rm \
|
||||
--user root \
|
||||
--volume DESKTOP_ENVIRONMENT_CONFIG_CHROME:$DESKTOP_ENVIRONMENT_CONFIG_CHROME \
|
||||
sabrehagen/desktop-environment:latest \
|
||||
$DESKTOP_ENVIRONMENT_USER/desktop-environment:latest \
|
||||
chown -R $DESKTOP_ENVIRONMENT_USER:$DESKTOP_ENVIRONMENT_USER $DESKTOP_ENVIRONMENT_CONFIG_CHROME
|
||||
|
||||
# Give the container user ownership of the DESKTOP_ENVIRONMENT_CONFIG_CODE volume
|
||||
|
|
@ -32,7 +40,7 @@ docker run \
|
|||
--rm \
|
||||
--user root \
|
||||
--volume DESKTOP_ENVIRONMENT_CONFIG_CODE:$DESKTOP_ENVIRONMENT_CONFIG_CODE \
|
||||
sabrehagen/desktop-environment:latest \
|
||||
$DESKTOP_ENVIRONMENT_USER/desktop-environment:latest \
|
||||
chown -R $DESKTOP_ENVIRONMENT_USER:$DESKTOP_ENVIRONMENT_USER $DESKTOP_ENVIRONMENT_CONFIG_CODE
|
||||
|
||||
# Give the container user ownership of the DESKTOP_ENVIRONMENT_CONFIG_GITHUB volume
|
||||
|
|
@ -40,5 +48,5 @@ docker run \
|
|||
--rm \
|
||||
--user root \
|
||||
--volume DESKTOP_ENVIRONMENT_CONFIG_GITHUB:$DESKTOP_ENVIRONMENT_CONFIG_GITHUB \
|
||||
sabrehagen/desktop-environment:latest \
|
||||
$DESKTOP_ENVIRONMENT_USER/desktop-environment:latest \
|
||||
chown -R $DESKTOP_ENVIRONMENT_USER:$DESKTOP_ENVIRONMENT_USER $DESKTOP_ENVIRONMENT_CONFIG_GITHUB
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
REPO_ROOT=$(dirname $(realpath $0))/..
|
||||
|
||||
# Export development environment shell configuration
|
||||
export $(sh $REPO_ROOT/scripts/environment.sh)
|
||||
|
||||
docker build \
|
||||
--build-arg CONTAINER_BUILD_DATE=$(date +%s) \
|
||||
--build-arg CONTAINER_GIT_SHA=$(git rev-parse HEAD | cut -b 1-7) \
|
||||
--tag sabrehagen/desktop-environment:latest \
|
||||
--tag $DESKTOP_ENVIRONMENT_USER/desktop-environment:latest \
|
||||
$REPO_ROOT
|
||||
|
|
|
|||
|
|
@ -1,15 +1,18 @@
|
|||
# Desktop environment container user
|
||||
DESKTOP_ENVIRONMENT_USER=jackson
|
||||
DESKTOP_ENVIRONMENT_HOME=/$DESKTOP_ENVIRONMENT_USER/home
|
||||
DESKTOP_ENVIRONMENT_REGISTRY=sabrehagen
|
||||
|
||||
# Desktop environment configuration
|
||||
echo DESKTOP_ENVIRONMENT_HOME=$DESKTOP_ENVIRONMENT_HOME
|
||||
echo DESKTOP_ENVIRONMENT_USER=$DESKTOP_ENVIRONMENT_USER
|
||||
echo DESKTOP_ENVIRONMENT_REGISTRY=$DESKTOP_ENVIRONMENT_REGISTRY
|
||||
|
||||
# Desktop environment cache volumes
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_CHROME=$DESKTOP_ENVIRONMENT_HOME/.cache/google-chrome
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_CODE=$DESKTOP_ENVIRONMENT_HOME/.vscode
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_YARN=$DESKTOP_ENVIRONMENT_HOME/.cache/yarn
|
||||
echo DESKTOP_ENVIRONMENT_CACHE_ZSH=$DESKTOP_ENVIRONMENT_HOME/.cache/zsh
|
||||
|
||||
# Desktop environment configuration volumes
|
||||
echo DESKTOP_ENVIRONMENT_CONFIG_CHROME=$DESKTOP_ENVIRONMENT_HOME/.config/google-chrome
|
||||
|
|
|
|||
|
|
@ -1 +1,6 @@
|
|||
docker push sabrehagen/desktop-environment:latest
|
||||
REPO_ROOT=$(dirname $(realpath $0))/..
|
||||
|
||||
# Export development environment shell configuration
|
||||
export $(sh $REPO_ROOT/scripts/environment.sh)
|
||||
|
||||
docker push $DESKTOP_ENVIRONMENT_REGISTRY/desktop-environment:latest
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ docker run \
|
|||
--detach \
|
||||
--device /dev/snd \
|
||||
--device /dev/dri \
|
||||
--device /dev/video0 \
|
||||
--device /dev/usb \
|
||||
--device /dev/bus/usb \
|
||||
--env DISPLAY \
|
||||
|
|
@ -44,12 +43,13 @@ docker run \
|
|||
--volume DESKTOP_ENVIRONMENT_CACHE_CHROME:$DESKTOP_ENVIRONMENT_CACHE_CHROME \
|
||||
--volume DESKTOP_ENVIRONMENT_CACHE_CODE:$DESKTOP_ENVIRONMENT_CACHE_CODE \
|
||||
--volume DESKTOP_ENVIRONMENT_CACHE_YARN:$DESKTOP_ENVIRONMENT_CACHE_YARN \
|
||||
--volume DESKTOP_ENVIRONMENT_CACHE_ZSH:$DESKTOP_ENVIRONMENT_CACHE_ZSH \
|
||||
--volume DESKTOP_ENVIRONMENT_CONFIG_CHROME:$DESKTOP_ENVIRONMENT_CONFIG_CHROME \
|
||||
--volume DESKTOP_ENVIRONMENT_CONFIG_CODE:$DESKTOP_ENVIRONMENT_CONFIG_CODE \
|
||||
--volume DESKTOP_ENVIRONMENT_CONFIG_GITHUB:$DESKTOP_ENVIRONMENT_CONFIG_GITHUB \
|
||||
--volume DESKTOP_ENVIRONMENT_HOME:$DESKTOP_ENVIRONMENT_HOME \
|
||||
--workdir $DESKTOP_ENVIRONMENT_HOME \
|
||||
sabrehagen/desktop-environment:latest
|
||||
$DESKTOP_ENVIRONMENT_REGISTRY/desktop-environment:latest
|
||||
|
||||
# Wait until the container is running before proceeding
|
||||
until docker inspect desktop-environment | grep Status | grep -m 1 running >/dev/null; do sleep 1; done
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue