From a4ed4cf533591f52985828ba8f18046c68517211 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Mon, 14 Oct 2024 12:40:53 +0800 Subject: [PATCH] feat: remove unnecessary quest Dockerfiles --- quests/checkpoint-01/Dockerfile | 3 --- quests/checkpoint-02/Dockerfile | 3 --- quests/checkpoint-03/Dockerfile | 7 ------- quests/copy/Dockerfile | 3 --- quests/entrypoint.sh | 1 + quests/execute/Dockerfile | 6 ------ quests/explore/Dockerfile | 3 --- quests/helloworld/Dockerfile | 3 --- quests/move/Dockerfile | 3 --- quests/path/Dockerfile | 3 --- quests/read/Dockerfile | 3 --- quests/remove/Dockerfile | 4 ---- quests/remove/home/empty/.gitkeep | 0 quests/tab/Dockerfile | 3 --- server/src/containers/docker.ts | 11 ++++++----- server/src/models/sessionManager.ts | 1 + 16 files changed, 8 insertions(+), 49 deletions(-) delete mode 100644 quests/checkpoint-01/Dockerfile delete mode 100644 quests/checkpoint-02/Dockerfile delete mode 100644 quests/checkpoint-03/Dockerfile delete mode 100644 quests/copy/Dockerfile delete mode 100644 quests/execute/Dockerfile delete mode 100644 quests/explore/Dockerfile delete mode 100644 quests/helloworld/Dockerfile delete mode 100644 quests/move/Dockerfile delete mode 100644 quests/path/Dockerfile delete mode 100644 quests/read/Dockerfile delete mode 100644 quests/remove/Dockerfile create mode 100644 quests/remove/home/empty/.gitkeep delete mode 100644 quests/tab/Dockerfile diff --git a/quests/checkpoint-01/Dockerfile b/quests/checkpoint-01/Dockerfile deleted file mode 100644 index 2a8e341..0000000 --- a/quests/checkpoint-01/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY home ${HOME} \ No newline at end of file diff --git a/quests/checkpoint-02/Dockerfile b/quests/checkpoint-02/Dockerfile deleted file mode 100644 index 2a8e341..0000000 --- a/quests/checkpoint-02/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY home ${HOME} \ No newline at end of file diff --git a/quests/checkpoint-03/Dockerfile b/quests/checkpoint-03/Dockerfile deleted file mode 100644 index 377fb37..0000000 --- a/quests/checkpoint-03/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM linuxodyssey/quest-base - -USER root -COPY home . -RUN chown -R ${USERNAME}:${USERNAME} . - -USER ${USERNAME} \ No newline at end of file diff --git a/quests/copy/Dockerfile b/quests/copy/Dockerfile deleted file mode 100644 index 2a8e341..0000000 --- a/quests/copy/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY home ${HOME} \ No newline at end of file diff --git a/quests/entrypoint.sh b/quests/entrypoint.sh index a997b3f..505b5b2 100644 --- a/quests/entrypoint.sh +++ b/quests/entrypoint.sh @@ -4,6 +4,7 @@ USERNAME=commander if ! id -u ${USERNAME} >/dev/null 2>&1; then adduser --disabled-password --gecos '' --shell /bin/zsh ${USERNAME} && \ + find / -name ".gitkeep" -type f -exec rm -f {} + mkdir -p /home/${USERNAME}/.ssh && \ cp /ssh_key.pub /home/${USERNAME}/.ssh/authorized_keys && \ chmod 600 /home/${USERNAME}/.ssh/authorized_keys && \ diff --git a/quests/execute/Dockerfile b/quests/execute/Dockerfile deleted file mode 100644 index 54f88a1..0000000 --- a/quests/execute/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM linuxodyssey/quest-base - -USER root -COPY home ${HOME} - -USER commander \ No newline at end of file diff --git a/quests/explore/Dockerfile b/quests/explore/Dockerfile deleted file mode 100644 index 2a8e341..0000000 --- a/quests/explore/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY home ${HOME} \ No newline at end of file diff --git a/quests/helloworld/Dockerfile b/quests/helloworld/Dockerfile deleted file mode 100644 index 1811d6e..0000000 --- a/quests/helloworld/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY home ${HOME} diff --git a/quests/move/Dockerfile b/quests/move/Dockerfile deleted file mode 100644 index 79a8660..0000000 --- a/quests/move/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY --chown=${USERNAME} home ${HOME} \ No newline at end of file diff --git a/quests/path/Dockerfile b/quests/path/Dockerfile deleted file mode 100644 index 2a8e341..0000000 --- a/quests/path/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY home ${HOME} \ No newline at end of file diff --git a/quests/read/Dockerfile b/quests/read/Dockerfile deleted file mode 100644 index 2a8e341..0000000 --- a/quests/read/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY home ${HOME} \ No newline at end of file diff --git a/quests/remove/Dockerfile b/quests/remove/Dockerfile deleted file mode 100644 index 3e36542..0000000 --- a/quests/remove/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY --chown=${USERNAME} home ${HOME} -RUN mkdir empty \ No newline at end of file diff --git a/quests/remove/home/empty/.gitkeep b/quests/remove/home/empty/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/quests/tab/Dockerfile b/quests/tab/Dockerfile deleted file mode 100644 index 1811d6e..0000000 --- a/quests/tab/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM linuxodyssey/quest-base - -COPY home ${HOME} diff --git a/server/src/containers/docker.ts b/server/src/containers/docker.ts index 3c37ad5..848a3fd 100644 --- a/server/src/containers/docker.ts +++ b/server/src/containers/docker.ts @@ -28,20 +28,21 @@ const newContainerOptions = ( export async function createContainer( name: string, + questId: string, imageId: string ): Promise { let binds: string[] = [ `${config.projectRoot}/config/ssh_key.pub:/ssh_key.pub:ro`, `${config.projectRoot}/quests/entrypoint.sh:/entrypoint.sh:ro`, ] - if (await questHomeExists(imageId)) { - logger.info('Mounting quest home', imageId) - binds.push(`${config.projectRoot}/quests/${imageId}/home:/etc/skel:ro`) + if (await questHomeExists(questId)) { + logger.info('Mounting quest home', questId) + binds.push(`${config.projectRoot}/quests/${questId}/home:/etc/skel:ro`) } if (!config.isProduction && config.docker.mountQuest && imageId !== 'base') { - logger.info('Mounting quest folder', imageId) + logger.info('Mounting quest folder', questId) binds = [ - `${config.projectRoot}/quests/${imageId}/home:/home/commander`, + `${config.projectRoot}/quests/${questId}/home:/home/commander`, `${config.projectRoot}/packages/container:/usr/local/lib/container`, ] } diff --git a/server/src/models/sessionManager.ts b/server/src/models/sessionManager.ts index 798732c..2489704 100644 --- a/server/src/models/sessionManager.ts +++ b/server/src/models/sessionManager.ts @@ -43,6 +43,7 @@ export async function createNewSession( const container = await createContainer( `quest-${quest.id}-${user.username}-${Date.now()}`, + quest.id, quest.image )