My personal customed shell as a docker container
Do this in your terminal, not in the container
git clone --depth=1 https://github.com/ryanoasis/nerd-fonts.git
cd nerd-fonts
./install.shOr you can just install one.
Currently I've tested this with JetBrainsMono Nerd Font
Create a .zshrc.private in your home directory to add private information to your shell
Example:
git config --global user.email "<email>"
git config --global user.name "<name>"Create a ~/.docker-shell.sh file with the following contents:
#!/usr/bin/env bash
docker run -it --rm \
-v $HOME/.ssh:/home/root/.ssh \
-v $HOME:/home/root/mnt \
-w /home/root/mnt \
-e GITHUB_TOKEN=$(gh auth token) \
-e MNT=/home/rgpeach10/mnt \
--pull=always \
rgpeach10/shell:mainThen set your terminal to launch this script when you open it.
Or you could put it in your ~/.bash_profile, ~/.bashrc, or ~/.zshrc file.
It's important the MNT variable is set to the directory you want to mount your home in the container from the containers filesystem perspective.
It is best to clone THIS REPO into your home directory
git clone [email protected]:ryanpeach/shell.git $HOME/shell
The .zshrc will detect this directory mounted to $SHELL_MNT_DIR which defaults to $HOME/mnt/shell inside the container, and stow files from its ./home directory.
This will allow you to safely edit your config from within your docker container, even within multiple running instances.
Create a .zshrc.private.local file in your home directory. Anything that you want to source specific to your os or local machine should go in here.
Creating this file will prevent the sourcing of the .zshrc.private file in this repo.
If you ALSO want to source the .zshrc.private file in this repo, you can do so by adding the following to your .zshrc.private.local file:
source /path/to/.zshrc.privateAlso please move the shell directory itself as a subdirectory of $HOME, or else set:
export SHELL_MNT_DIR=$HOME/shell # or wherever you cloned this repoIF YOU WANT TO GET RID OF YOUR LOCAL CONFIGS IN FAVOR OF THOSE IN THIS REPO, go into the shell directory and run:
just stow-hardjust run <tag>
Should do almost everything you need to do to run this container mounting the home directory and getting git and gh to work. The rest are just understanding the commands and what they do.
Log in to gh in your normal terminal using
gh auth loginChoose SSH auth
This will guide you through some steps, and create a token in your ~/.config/gh directory, as well as add your ssh key to your github account.
Now you just need to add to your docker run command:
-v <YOUR_HOME>/.ssh:/home/root/.ssh for ssh keys
And
-e GITHUB_TOKEN=$(gh auth token) for the github token