From 97a21c476da9a1541d4a32289767b838bb54d0d8 Mon Sep 17 00:00:00 2001 From: Howard Tseng Date: Mon, 16 Sep 2024 23:36:19 -0400 Subject: [PATCH] code-server-python3poetry: initial release --- Dockerfile | 2 +- README.md | 26 +++------------- .../dependencies.d/init-mods | 0 .../run | 14 +++++++++ .../type | 0 .../up | 0 .../dependencies.d/init-mods-package-install | 0 .../run | 11 +++++-- .../type | 0 .../up | 0 .../run | 30 ------------------- 11 files changed, 28 insertions(+), 55 deletions(-) rename root/etc/s6-overlay/s6-rc.d/{init-mod-imagename-modname-add-package => init-mod-code-server-python3poetry-add-package}/dependencies.d/init-mods (100%) create mode 100644 root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/run rename root/etc/s6-overlay/s6-rc.d/{init-mod-imagename-modname-add-package => init-mod-code-server-python3poetry-add-package}/type (100%) rename root/etc/s6-overlay/s6-rc.d/{init-mod-imagename-modname-add-package => init-mod-code-server-python3poetry-add-package}/up (100%) rename root/etc/s6-overlay/s6-rc.d/{init-mod-imagename-modname-install => init-mod-code-server-python3poetry-install}/dependencies.d/init-mods-package-install (100%) rename root/etc/s6-overlay/s6-rc.d/{init-mod-imagename-modname-install => init-mod-code-server-python3poetry-install}/run (52%) mode change 100755 => 100644 rename root/etc/s6-overlay/s6-rc.d/{init-mod-imagename-modname-install => init-mod-code-server-python3poetry-install}/type (100%) rename root/etc/s6-overlay/s6-rc.d/{init-mod-imagename-modname-install => init-mod-code-server-python3poetry-install}/up (100%) delete mode 100755 root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run diff --git a/Dockerfile b/Dockerfile index aa661704..72aed797 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM scratch -LABEL maintainer="username" +LABEL maintainer="howardt12345" # copy local files COPY root/ / diff --git a/README.md b/README.md index 17006683..4566a370 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,7 @@ -# Rsync - Docker mod for openssh-server +# Python3 + Poetry - Docker mod for code-server/openvscode-server -This mod adds rsync to openssh-server, to be installed/updated during container start. +This mod adds a python3 dev environment to code-server/openvscode-server, to be installed/updated during container start, setting up a python3 environment with poetry. -In openssh-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:openssh-server-rsync` +In code-server/openvscode-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:code-server-python3poetry` -If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:openssh-server-rsync|linuxserver/mods:openssh-server-mod2` - -# Mod creation instructions - -* Fork the repo, create a new branch based on the branch `template`. -* Edit the `Dockerfile` for the mod. `Dockerfile.complex` is only an example and included for reference; it should be deleted when done. -* Inspect the `root` folder contents. Edit, add and remove as necessary. -* After all init scripts and services are created, run `find ./ -path "./.git" -prune -o \( -name "run" -o -name "finish" -o -name "check" \) -not -perm -u=x,g=x,o=x -print -exec chmod +x {} +` to fix permissions. -* Edit this readme with pertinent info, delete these instructions. -* Finally edit the `.github/workflows/BuildImage.yml`. Customize the vars for `BASEIMAGE` and `MODNAME`. Set the versioning logic and `MULTI_ARCH` if needed. -* Ask the team to create a new branch named `-`. Baseimage should be the name of the image the mod will be applied to. The new branch will be based on the `template` branch. -* Submit PR against the branch created by the team. - - -## Tips and tricks - -* Some images have helpers built in, these images are currently: - * [Openvscode-server](https://github.com/linuxserver/docker-openvscode-server/pull/10/files) - * [Code-server](https://github.com/linuxserver/docker-code-server/pull/95) +If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:code-server-python3poetry|linuxserver/mods:code-server-mod2` \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/dependencies.d/init-mods b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/dependencies.d/init-mods similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/dependencies.d/init-mods rename to root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/dependencies.d/init-mods diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/run new file mode 100644 index 00000000..6bfad731 --- /dev/null +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/run @@ -0,0 +1,14 @@ +#!/usr/bin/with-contenv bash + +if ! dpkg -l | grep python3-dev > /dev/null; then + echo "**** Adding python3 to package install list ****" + echo "\ + build-essential \ + libssl-dev \ + libffi-dev \ + python3-dev \ + python3-pip \ + python3-venv" >> /mod-repo-packages-to-install.list +else + echo "**** python3 already installed ****" +fi \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/type b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/type similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/type rename to root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/type diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/up b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/up similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/up rename to root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-add-package/up diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/dependencies.d/init-mods-package-install b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/dependencies.d/init-mods-package-install similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/dependencies.d/init-mods-package-install rename to root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/dependencies.d/init-mods-package-install diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/run b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/run old mode 100755 new mode 100644 similarity index 52% rename from root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/run rename to root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/run index 59a4b77f..b4d0067c --- a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/run +++ b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/run @@ -4,5 +4,12 @@ # so it can take advantage of packages installed # init-mods-end depends on this script so that later init and services wait until this script exits -echo "**** Setting up apprise ****" -apprise blah blah +echo "**** Setting up poetry ****" + +# Install poetry +curl -sSL https://install.python-poetry.org | python3 - + +# Add poetry to the path +echo "export PATH=\"\$HOME/.local/bin:\$PATH\"" >> /root/.bashrc + +echo "**** poetry setup complete ****" \ No newline at end of file diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/type b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/type similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/type rename to root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/type diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/up b/root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/up similarity index 100% rename from root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-install/up rename to root/etc/s6-overlay/s6-rc.d/init-mod-code-server-python3poetry-install/up diff --git a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run b/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run deleted file mode 100755 index 063b5701..00000000 --- a/root/etc/s6-overlay/s6-rc.d/init-mod-imagename-modname-add-package/run +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/with-contenv bash - -# This is the init file used for adding os or pip packages to install lists. -# It takes advantage of the built-in init-mods-package-install init script that comes with the baseimages. -# If using this, we need to make sure we set this init as a dependency of init-mods-package-install so this one runs first - -if ! command -v apprise; then - echo "**** Adding apprise and its deps to package install lists ****" - echo "apprise" >> /mod-pip-packages-to-install.list - ## Ubuntu - if [ -f /usr/bin/apt ]; then - echo "\ - python3 \ - python3-pip \ - runc" >> /mod-repo-packages-to-install.list - fi - # Alpine - if [ -f /sbin/apk ]; then - echo "\ - cargo \ - libffi-dev \ - openssl-dev \ - python3 \ - python3-dev \ - python3 \ - py3-pip" >> /mod-repo-packages-to-install.list - fi -else - echo "**** apprise already installed, skipping ****" -fi