Need help with zsh-in-docker?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

deluan
151 Stars 30 Forks MIT License 44 Commits 0 Opened issues

Description

Install Zsh, Oh-My-Zsh and plugins inside a Docker container with one line!

Services available

!
?

Need anything else?

Contributors list

# 30,874
streami...
airsoni...
Raspber...
Racket
40 commits
# 115,850
HTML
vsphere
TypeScr...
lambda
2 commits

Oh My Zsh Installer for Docker

Last Release Build Downloads

This is a script to automate Oh My Zsh installation in development containers. Works with any images 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

Usage

One line installation: add the following line in your

Dockerfile
:
# Default powerline10k theme, no plugins installed
RUN sh -c "$(wget -O- https://github.com/deluan/zsh-in-docker/releases/download/v1.1.1/zsh-in-docker.sh)"

Optional arguments:

  • -t 
    - 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
     is a url, the script will try to install the theme using 
    git clone
    .
  • -p 
    - Specifies a plugin to be configured in the generated
    .zshrc
    . List of bundled Oh My Zsh plugins are available here. If
     is a url, the script will try to install the plugin using 
    git clone
    .
  • -a 
    - You can add extra lines at the end of the generated
    .zshrc
    (but before loading oh-my-zsh) by passing one
    -a
    argument 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.1/zsh-in-docker.sh)" -- \
  -a 'CASE_SENSITIVE="true"'

Examples:

# 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.1/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.1/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.1/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

Notes

  • The examples above use
    wget
    , but if you prefer
    curl
    , just replace
    wget -O-
    with
    curl
  • This scripts requires
    git
    and
    curl
    to work properly. If your
    Dockerfile
    uses
    root
    as 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
    sudo
    package OR to install
    git
    and
    curl
    packages before calling this script
  • By default this script will install the
    powerlevel10k
    theme, 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
    -t robbyrussell

Liked it?

If you like this script, feel free to thank me with a coffee (or a beer :wink:):

ko-fi

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.