From e1e580986386ecf247691a1b51254378ca50ef9e Mon Sep 17 00:00:00 2001 From: Bram Kelchtermans Date: Mon, 19 Aug 2024 17:02:28 +0200 Subject: [PATCH] chore: Update Dockerfile to fix Teleport installation command and create teleport configuration file --- Dockers/remote-node-container/Dockerfile | 12 +--------- Dockers/remote-node-container/entrypoint.sh | 26 +++++++++++++++++---- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/Dockers/remote-node-container/Dockerfile b/Dockers/remote-node-container/Dockerfile index 4e5293f..b68af75 100644 --- a/Dockers/remote-node-container/Dockerfile +++ b/Dockers/remote-node-container/Dockerfile @@ -8,7 +8,7 @@ WORKDIR /workspace RUN npm install -g pm2 # Install git, openssh-client, and openssh-server -RUN apt-get update && apt-get install -y git openssh-client software-properties-common sudo +RUN apt-get update && apt-get install -y git openssh-client software-properties-common sudo # RUN apt-get install -y fish RUN git clone https://gitea.bramkelchtermans.be/Bram/linux-presets.git && cd linux-presets && chmod +x setup.sh && ./setup.sh --terminal-icon 󰎙 @@ -16,19 +16,9 @@ RUN rm -rf linux-presets RUN usermod -aG sudo root -# SHELL [ "fish", "--command" ] -# RUN chsh -s /usr/bin/fish -# ENV SHELL /usr/bin/fish -# ENV LANG=C.UTF-8 LANGUAGE=C.UTF-8 LC_ALL=C.UTF-8 - # Create a directory for the SSH keys RUN mkdir -p /root/.ssh -COPY install-node.sh /usr/local/bin/install-node.sh -RUN chmod +x /usr/local/bin/install-node.sh -RUN /usr/local/bin/install-node.sh - - # Copy the entrypoint script into the container COPY entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh diff --git a/Dockers/remote-node-container/entrypoint.sh b/Dockers/remote-node-container/entrypoint.sh index e5e360b..a30415f 100644 --- a/Dockers/remote-node-container/entrypoint.sh +++ b/Dockers/remote-node-container/entrypoint.sh @@ -13,17 +13,35 @@ if [ ! -f /root/.ssh/id_rsa ]; then exit 1 fi -if [ -z $GIT_USER ]; then +if [ -z $GIT_USER ]; then echo "Error: GIT_USER environment variable must be set." exit 1 fi -if [ -z $GIT_EMAIL ]; then +if [ -z $GIT_EMAIL ]; then echo "Error: GIT_EMAIL environment variable must be set." exit 1 fi +# If no teleport edition is given, fallback to oss +if [ -z "$TELEPORT_EDITION" ]; then + TELEPORT_EDITION="oss" +fi +# Install Teleport if the environment variables are set +if [ -n "$TELEPORT_VERSION" ] && [ -n "$TELEPORT_URL" ]; then + echo "Installing Teleport version $TELEPORT_VERSION, edition $TELEPORT_EDITION..." + echo "Executing: curl https://goteleport.com/static/install.sh | bash -s $TELEPORT_VERSION $TELEPORT_EDITION" + curl https://goteleport.com/static/install.sh | bash -s ${TELEPORT_VERSION} ${TELEPORT_EDITION} + + ## If teleport token is set and there is no teleport.yaml file, create one + if [ -n "$TELEPORT_TOKEN" ] && [ ! -f /etc/teleport.yaml ]; then + teleport configure --roles=node --token=$TELEPORT_TOKEN --proxy=$TELEPORT_URL --no-acme -o file + echo "Created teleport configuration file" + fi +else + echo "Error: TELEPORT_VERSION and TELEPORT_EDITION environment variables must be set." +fi # Ensure the SSH key has the correct permissions chmod 600 /root/.ssh/id_rsa @@ -38,14 +56,14 @@ if [ ! -d "/workspace/.git" ]; then HostName $DOMAIN IdentityFile /root/.ssh/id_rsa StrictHostKeyChecking no - " >> /root/.ssh/config + " >>/root/.ssh/config # Clone the repository if it doesn't exist git clone $REPO_URL /workspace fi # Add the public SSH key to authorized_keys if [ -f /root/.ssh/hostkey.pub ]; then - cat /root/.ssh/hostkey.pub >> /root/.ssh/authorized_keys + cat /root/.ssh/hostkey.pub >>/root/.ssh/authorized_keys fi # Change to the repository directory