Oh My Zsh Installer for Docker
This is a script to automate Oh My Zsh installation in development containers. Works with any image based on Alpine, Ubuntu, Debian, CentOS or Amazon Linux.
The original goal was to simplify setting up
zsh and Oh My Zsh in a Docker image for use with VSCode's Remote Containers extension, but it can be used whenever you need a simple way to install Oh My Zsh and its plugins in a Docker image
One line installation: add the following line in your
# Default powerline10k theme, no plugins installed RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.2/zsh-in-docker.sh)"
-t <theme>- Selects the theme to be used. Options are available here. By default the script installs and uses Powerlevel10k, one of the "fastest and most awesome" themes for
zsh. This is my recommended theme. If
<theme>is a url, the script will try to install the theme using
-p <plugin>- Specifies a plugin to be configured in the generated
.zshrc. List of bundled Oh My Zsh plugins are available here. If
<plugin>is a url, the script will try to install the plugin using
-a <line>- You can add extra lines at the end of the generated
.zshrc(but before loading oh-my-zsh) by passing one
-aargument for each line you want to add. This is useful to customize plugins or themes. For example, if you want to enable case sensitive completion:
RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.2/zsh-in-docker.sh)" -- \ -a 'CASE_SENSITIVE="true"'
# Uses "robbyrussell" theme (original Oh My Zsh theme), with no plugins RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.2/zsh-in-docker.sh)" -- \ -t robbyrussell
# Uses "git", "ssh-agent" and "history-substring-search" bundled plugins RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.2/zsh-in-docker.sh)" -- \ -p git -p ssh-agent -p 'history-substring-search' \ -a 'bindkey "\$terminfo[kcuu1]" history-substring-search-up' \ -a 'bindkey "\$terminfo[kcud1]" history-substring-search-down'
# Uses "Spaceship" theme with some customization. Uses some bundled plugins and installs some more from github RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.2/zsh-in-docker.sh)" -- \ -t https://github.com/denysdovhan/spaceship-prompt \ -a 'SPACESHIP_PROMPT_ADD_NEWLINE="false"' \ -a 'SPACESHIP_PROMPT_SEPARATE_LINE="false"' \ -p git \ -p ssh-agent \ -p https://github.com/zsh-users/zsh-autosuggestions \ -p https://github.com/zsh-users/zsh-completions
- The examples above use
wget, but if you prefer
curl, just replace
- This scripts requires
curlto work properly. If your
rootas the main user, it should be fine, as the script will install them automatically. If you are using a non-root user, make sure to install the
sudopackage OR to install
curlpackages before calling this script
- By default this script will install the
powerlevel10ktheme, as it is one of the fastest and most customizable themes available for zsh. If you want the default Oh My Zsh theme, use the option
If you like this script, feel free to thank me with a coffee (or a beer