From 9f72a71e5b8f91ad14b564faa692aa18e6779740 Mon Sep 17 00:00:00 2001 From: Roxedus Date: Wed, 23 Aug 2023 15:44:25 +0200 Subject: [PATCH] More keyring updates --- Dockerfile | 12 +++++----- readme-vars.yml | 2 ++ root/etc/s6-overlay/s6-rc.d/init-keyring/run | 21 +++++++++++++++-- .../s6-overlay/s6-rc.d/init-vscode-server/run | 2 +- .../s6-rc.d/svc-vscode-server-web/run | 18 +++++++-------- .../s6-overlay/s6-rc.d/svc-vscode-server/run | 23 +++++++++++-------- 6 files changed, 49 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index b614d95..aec0674 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,28 +35,28 @@ RUN \ | jq '.version' -r); \ fi && \ if [ -z ${CLI_RELEASE+x} ]; then \ - CLI_RELEASE=$(curl -sLX GET "https://vscodeserverlauncher.blob.core.windows.net/builds/latest" \ - | jq '.version' -r); \ + CLI_RELEASE=$(curl -sLX GET "https://vscodeserverlauncher.blob.core.windows.net/builds/latest" \ + | jq '.version' -r); \ fi && \ mkdir -p /usr/local/bin && \ mkdir -p /app/vscode-server/server-insiders-web/bin/${CODE_RELEASE} && \ mkdir -p /app/vscode-server/server-insiders/bin/${CODE_RELEASE} && \ curl -o \ /usr/local/bin/code-server -L \ - "https://vscodeserverlauncher.blob.core.windows.net/builds/${CLI_RELEASE}/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu" && \ + "https://vscodeserverlauncher.blob.core.windows.net/builds/${CLI_RELEASE}/x86_64-unknown-linux-gnu/x86_64-unknown-linux-gnu" && \ chmod +x /usr/local/bin/code-server && \ curl -o \ /tmp/vscode-server-web.tar.gz -L \ - "https://az764295.vo.msecnd.net/insider/${CODE_RELEASE}/vscode-server-linux-x64-web.tar.gz" && \ + "https://az764295.vo.msecnd.net/insider/${CODE_RELEASE}/vscode-server-linux-x64-web.tar.gz" && \ tar xf \ /tmp/vscode-server-web.tar.gz -C \ /app/vscode-server/server-insiders-web/bin/${CODE_RELEASE}/ --strip-components=1 && \ curl -o \ /tmp/vscode-server.tar.gz -L \ - "https://az764295.vo.msecnd.net/insider/${CODE_RELEASE}/vscode-server-linux-x64.tar.gz" && \ + "https://az764295.vo.msecnd.net/insider/${CODE_RELEASE}/vscode-server-linux-x64.tar.gz" && \ tar xf \ /tmp/vscode-server.tar.gz -C \ - /app/vscode-server/server-insiders/bin/${CODE_RELEASE}/ --strip-components=1 && \ + /app/vscode-server/server-insiders/bin/${CODE_RELEASE}/ --strip-components=1 && \ echo "**** clean up ****" && \ apt-get clean && \ rm -rf \ diff --git a/readme-vars.yml b/readme-vars.yml index e1c8581..dd1a00e 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -54,6 +54,8 @@ app_setup_block: | If `RUN_MODE` is set to either `web` or `server`, it only starts that component, if not specified, it runs both. + TODO: NOTE ABOUT SPACE FOR MULTIPLE VERSIONS + # changelog diff --git a/root/etc/s6-overlay/s6-rc.d/init-keyring/run b/root/etc/s6-overlay/s6-rc.d/init-keyring/run index c212dc8..a0df416 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-keyring/run +++ b/root/etc/s6-overlay/s6-rc.d/init-keyring/run @@ -3,12 +3,29 @@ mkdir -p /config/.local/share/keyrings -if [ -f /etc/machine-id ]; then +if [ ! -f /var/lib/dbus/machine-id ]; then dbus-uuidgen --ensure sleep 1 + cp "/var/lib/dbus/machine-id" "/config/.local/machine-id" + [[ -f "/var/lib/dbus/machine-id" ]] && rm "/var/lib/dbus/machine-id" + [[ -f "/etc/machine-id" ]] && rm "/etc/machine-id" +fi + +if [ ! -f /config/.local/machine-id ]; then + cp "/var/lib/dbus/machine-id" "/config/.local/machine-id" + rm "/var/lib/dbus/machine-id" "/etc/machine-id" +fi + +if [[ ! -L "/var/lib/dbus/machine-id" ]]; then + [[ -f "/var/lib/dbus/machine-id" ]] && rm "/var/lib/dbus/machine-id" + ln -s "/config/.local/machine-id" "/var/lib/dbus/machine-id" +fi + +if [[ ! -L "/etc/machine-id" ]]; then + [[ -f "/etc/machine-id" ]] && rm "/etc/machine-id" + ln -s "/config/.local/machine-id" "/etc/machine-id" fi -echo "keyring" eval $(s6-setuidgid abc dbus-launch --sh-syntax) echo 'somecredstorepass' | eval $(s6-setuidgid abc gnome-keyring-daemon --daemonize --components=pkcs11,secrets,ssh --unlock) echo -n "${DBUS_SESSION_BUS_ADDRESS}" >/run/s6/container_environment/DBUS_SESSION_BUS_ADDRESS diff --git a/root/etc/s6-overlay/s6-rc.d/init-vscode-server/run b/root/etc/s6-overlay/s6-rc.d/init-vscode-server/run index d0d0d04..f70ba56 100755 --- a/root/etc/s6-overlay/s6-rc.d/init-vscode-server/run +++ b/root/etc/s6-overlay/s6-rc.d/init-vscode-server/run @@ -39,7 +39,7 @@ done echo "setting permissions::app" lsiown abc:abc /app/vscode-server/{{server-insiders-web,server-insiders},{server-insiders-web,server-insiders}/bin} echo "setting permissions::config" -find /config -path /config/.vscode-server -prune -o -exec chown abc:abc {} + +find /config -path /config/.vscode-server -prune -path /config/var -prune -o -exec chown abc:abc {} + chmod 700 /config/.ssh if [ -n "$(ls -A /config/.ssh)" ]; then diff --git a/root/etc/s6-overlay/s6-rc.d/svc-vscode-server-web/run b/root/etc/s6-overlay/s6-rc.d/svc-vscode-server-web/run index 37b4bd8..3166ca1 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-vscode-server-web/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-vscode-server-web/run @@ -1,8 +1,6 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -env | sort > /svc-env - if [ -n "$CONNECTION_SECRET" ]; then CODE_LOCAL_ARGS="${CODE_LOCAL_ARGS} --connection-token-file ${CONNECTION_SECRET}" echo "Using connection secret from ${CONNECTION_SECRET}" @@ -15,11 +13,11 @@ fi exec \ s6-notifyoncheck -d -n 300 -w 1000 -c "nc -z 127.0.0.1 8000" \ - cd "$DEFAULT_WORKSPACE" \ - s6-setuidgid abc \ - /usr/local/bin/code-server serve-local \ - --accept-server-license-terms\ - --quality insiders \ - --host 0.0.0.0 \ - --disable-telemetry \ - ${CODE_LOCAL_ARGS} + s6-setuidgid abc \ + /usr/local/bin/code-server serve-local \ + --verbose \ + --accept-server-license-terms \ + --quality insiders \ + --host 0.0.0.0 \ + --disable-telemetry \ + ${CODE_LOCAL_ARGS} diff --git a/root/etc/s6-overlay/s6-rc.d/svc-vscode-server/run b/root/etc/s6-overlay/s6-rc.d/svc-vscode-server/run index a5809aa..37059fe 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-vscode-server/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-vscode-server/run @@ -1,15 +1,18 @@ #!/usr/bin/with-contenv bash # shellcheck shell=bash -until [[ -e /run/dbus/system_bus_socket ]]; do - sleep 1s -done +if [ -z ${TUNNEL_NAME+x} ]; then + TUNNEL_NAME_ARG="--random-name" +else + TUNNEL_NAME_ARG="--name=${TUNNEL_NAME}" +fi + +cd /config || true exec \ - cd "$DEFAULT_WORKSPACE" \ - s6-setuidgid abc \ - /usr/local/bin/code-server serve \ - --accept-server-license-terms \ - --random-name \ - --disable-telemetry \ - ${CODE_ARGS} || exit 1 + s6-setuidgid abc \ + /usr/local/bin/code-server serve \ + --accept-server-license-terms \ + ${TUNNEL_NAME_ARG} \ + --disable-telemetry \ + ${CODE_ARGS} || exit 1