dynamic teleport injection for react dev container
Build and Push Docker Images / build-and-push (push) Successful in 29s
Build and Push Docker Images / build-and-push (push) Successful in 29s
This commit is contained in:
@@ -16,19 +16,9 @@ RUN rm -rf linux-presets
|
|||||||
|
|
||||||
RUN usermod -aG sudo root
|
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
|
# Create a directory for the SSH keys
|
||||||
RUN mkdir -p /root/.ssh
|
RUN mkdir -p /root/.ssh
|
||||||
|
|
||||||
COPY install-node.sh /workspace/install-node.sh
|
|
||||||
RUN chmod +x /workspace/install-node.sh
|
|
||||||
RUN /workspace/install-node.sh
|
|
||||||
RUN rm /workspace/install-node.sh
|
|
||||||
|
|
||||||
# Copy the entrypoint script into the container
|
# Copy the entrypoint script into the container
|
||||||
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
||||||
RUN chmod +x /usr/local/bin/entrypoint.sh
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
||||||
|
|||||||
@@ -7,22 +7,22 @@ if [ -z "$REPO_URL" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if the SSH key exists
|
if [ -z "$GIT_USER" ]; then
|
||||||
if [ ! -f /root/.ssh/id_rsa ]; then
|
|
||||||
echo "Error: SSH private key not found at /root/.ssh/id_rsa"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z $GIT_USER ]; then
|
|
||||||
echo "Error: GIT_USER environment variable must be set."
|
echo "Error: GIT_USER environment variable must be set."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z $GIT_EMAIL ]; then
|
if [ -z "$GIT_EMAIL" ]; then
|
||||||
echo "Error: GIT_EMAIL environment variable must be set."
|
echo "Error: GIT_EMAIL environment variable must be set."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if the SSH key exists
|
||||||
|
if [ ! -f /root/.ssh/id_rsa ]; then
|
||||||
|
echo "Error: SSH private key not found at /root/.ssh/id_rsa"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Ensure the SSH key has the correct permissions
|
# Ensure the SSH key has the correct permissions
|
||||||
chmod 600 /root/.ssh/id_rsa
|
chmod 600 /root/.ssh/id_rsa
|
||||||
|
|
||||||
@@ -46,6 +46,19 @@ 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
|
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..."
|
||||||
|
curl https://${TELEPORT_URL}/install-v${TELEPORT_VERSION}.sh | bash -s ${TELEPORT_VERSION} ${TELEPORT_EDITION}
|
||||||
|
else
|
||||||
|
echo "Error: TELEPORT_VERSION and TELEPORT_EDITION environment variables must be set."
|
||||||
|
fi
|
||||||
|
|
||||||
# Change to the repository directory
|
# Change to the repository directory
|
||||||
cd /workspace
|
cd /workspace
|
||||||
|
|
||||||
@@ -66,11 +79,16 @@ git config --global user.email $GIT_EMAIL
|
|||||||
# Get the hostname of the machine
|
# Get the hostname of the machine
|
||||||
HOSTNAME=$(hostname)
|
HOSTNAME=$(hostname)
|
||||||
|
|
||||||
# File path
|
# # File path
|
||||||
CONFIG_FILE="/etc/teleport.yaml"
|
# CONFIG_FILE="/etc/teleport.yaml"
|
||||||
|
|
||||||
# Edit the teleport.yaml file to update the nodename
|
# # Edit the teleport.yaml file to update the nodename
|
||||||
sed -i "s/^ nodename:.*/ nodename: $HOSTNAME/" "$CONFIG_FILE"
|
# sed -i "s/^ nodename:.*/ nodename: $HOSTNAME/" "$CONFIG_FILE"
|
||||||
|
|
||||||
|
## If teleport token is set, join the server
|
||||||
|
if [ -n "$TELEPORT_TOKEN" ]; then
|
||||||
|
teleport configure --roles=node --token=$TELEPORT_TOKEN --proxy=$TELEPORT_URL -o file
|
||||||
|
fi
|
||||||
|
|
||||||
nohup teleport start &
|
nohup teleport start &
|
||||||
# Start the application with pm2
|
# Start the application with pm2
|
||||||
|
|||||||
Reference in New Issue
Block a user