diff --git a/Dockerfile b/Dockerfile index c946fb8..e63c243 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ -FROM lsiobase/alpine:3.12 as buildstage +FROM lsiobase/alpine:3.15 as buildstage RUN \ - apk add --no-cache \ + apk add --no-cache \ git && \ - git clone https://github.com/ohmyzsh/ohmyzsh.git /root-layer/.oh-my-zsh + git clone https://github.com/ohmyzsh/ohmyzsh.git /root-layer/.oh-my-zsh COPY root/ /root-layer/ diff --git a/README.md b/README.md index a975981..c760008 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# Zsh / Oh My Zsh - Docker mod for code-server +# Zsh / Oh My Zsh - Docker mod for code-server/openvscode-server -This mod adds `zsh` and `Oh My Zsh` to code-server, to be installed/updated during container start. +This mod adds `zsh` and `Oh My Zsh` to code-server/openvscode-server, to be installed/updated during container start. -In code-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:code-server-zsh` +In code-server/openvscode-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:code-server-zsh` If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:code-server-zsh|linuxserver/mods:code-server-prolog` diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/dependencies.d/init-mods b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/dependencies.d/init-mods new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/run new file mode 100755 index 0000000..1074ab8 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/run @@ -0,0 +1,23 @@ +#!/usr/bin/with-contenv bash + +if ! dpkg -s zsh >/dev/null 2>&1; then + echo "**** Adding zsh to package install list ****" + echo "zsh" >> /mod-repo-packages-to-install.list +else + echo "**** zsh already installed, skipping ****" +fi + +# Install oh-my-zsh if not installed already +if [ -d /config/.oh-my-zsh ]; then + echo "**** Oh My Zsh is already installed. You can update it via \"omz update\" in terminal. ****" +elif [ -d /.oh-my-zsh ]; then + echo "**** Installing Oh My Zsh. You can update it via \"omz update\" in terminal. ****" + mv /.oh-my-zsh /config/.oh-my-zsh + cp /config/.oh-my-zsh/templates/zshrc.zsh-template /config/.zshrc +else + echo "**** It looks like Oh My Zsh was manually deleted after install. Please recreate the code-server container to reinstall Oh My Zsh. ****" +fi + +chown -R abc:abc \ + /config/.oh-my-zsh \ + /config/.zshrc diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/type b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/type new file mode 100644 index 0000000..3d92b15 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/type @@ -0,0 +1 @@ +oneshot \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/up b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/up new file mode 100644 index 0000000..f8dac9e --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-mod-code-server-zsh-add-package/run \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-code-server-zsh-add-package b/root/etc/s6-overlay/s6-rc.d/init-mods-package-install/dependencies.d/init-mod-code-server-zsh-add-package new file mode 100644 index 0000000..e69de29 diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-code-server-zsh-add-package b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-mod-code-server-zsh-add-package new file mode 100644 index 0000000..e69de29