Giter Club home page Giter Club logo

zsh-in-docker's Introduction

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 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

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.2/zsh-in-docker.sh)"

Optional arguments:

  • -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 git clone.

  • -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 git clone.

  • -a <line> - 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.2/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.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

Notes

  • The examples above use wget, but if you prefer curl, just replace wget -O- with curl -L
  • 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 ๐Ÿ˜‰):

ko-fi

zsh-in-docker's People

Contributors

arjentix avatar ddemarco96 avatar deluan avatar legau avatar mreferre avatar vvdaal avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.