mirror of
https://github.com/coder/coder.git
synced 2026-06-03 21:18:24 +00:00
91c337a2ff
This PR makes templates uses the [hashicorp/cloud-init](https://registry.terraform.io/providers/hashicorp/cloudinit/latest/docs) provider instead of hardcoding a cloud-init config.
38 lines
1.2 KiB
Plaintext
38 lines
1.2 KiB
Plaintext
#!/bin/bash
|
|
# Install Docker
|
|
if ! command -v docker &> /dev/null
|
|
then
|
|
echo "Docker not found, installing..."
|
|
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh 2>&1 >/dev/null
|
|
usermod -aG docker ${linux_user}
|
|
newgrp docker
|
|
else
|
|
echo "Docker is already installed."
|
|
fi
|
|
|
|
# Set up Docker credentials
|
|
mkdir -p "/home/${linux_user}/.docker"
|
|
|
|
if [ -n "${docker_config_json_base64}" ]; then
|
|
# Write the Docker config JSON to disk if it is provided.
|
|
printf "%s" "${docker_config_json_base64}" | base64 -d | tee "/home/${linux_user}/.docker/config.json"
|
|
else
|
|
# Assume that we're going to use the instance IAM role to pull from the cache repo if we need to.
|
|
# Set up the ecr credential helper.
|
|
apt-get update -y && apt-get install -y amazon-ecr-credential-helper
|
|
mkdir -p .docker
|
|
printf '{"credsStore": "ecr-login"}' | tee "/home/${linux_user}/.docker/config.json"
|
|
fi
|
|
chown -R ${linux_user}:${linux_user} "/home/${linux_user}/.docker"
|
|
|
|
# Start envbuilder
|
|
sudo -u coder docker run \
|
|
--rm \
|
|
--net=host \
|
|
-h ${hostname} \
|
|
-v /home/${linux_user}/envbuilder:/workspaces \
|
|
%{ for key, value in environment ~}
|
|
-e ${key}="${value}" \
|
|
%{ endfor ~}
|
|
${builder_image}
|