-
Notifications
You must be signed in to change notification settings - Fork 0
Feature: add docker installation #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from 2 commits
a8ece81
0ec374c
3cbb752
7398a11
7d1e71a
0a29701
a628adc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -82,6 +82,57 @@ run_verification() { | |
| fi | ||
| fi | ||
|
|
||
| #install docker | ||
| if [ "$install_docker" == "yes" ]; then | ||
| echo "Installing Docker inside container: $container_id" | tee -a "$log_file" | ||
|
|
||
| distro=$(docker exec "$container_id" sh -c 'grep "^ID=" /etc/os-release | cut -d= -f2' | tr -d '"') | ||
|
|
||
| case "$distro" in | ||
| ubuntu) | ||
| docker exec "$container_id" bash -c " | ||
| apt-get update && | ||
| apt-get install -y ca-certificates curl gnupg sudo && | ||
| install -m 0755 -d /etc/apt/keyrings && | ||
| curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && | ||
| chmod a+r /etc/apt/keyrings/docker.asc && | ||
| echo \"deb [arch=\$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo \${UBUNTU_CODENAME:-\$VERSION_CODENAME}) stable\" > /etc/apt/sources.list.d/docker.list && | ||
| apt-get update && | ||
| apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && | ||
| sudo usermod -aG docker $USER && newgrp docker | ||
| sudo dockerd & && | ||
| sleep 30 | ||
| " | ||
| ;; | ||
| rhel|centos) | ||
| docker exec "$container_id" bash -c " | ||
| sudo dnf -y install dnf-plugins-core sudo && | ||
| sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo && | ||
| sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin && | ||
| sudo usermod -aG docker $USER && newgrp docker | ||
| sudo dockerd & && | ||
| sleep 30 | ||
| " | ||
| ;; | ||
| sles|suse) | ||
| docker exec "$container_id" bash -c " | ||
| sudo zypper addrepo https://download.docker.com/linux/sles/docker-ce.repo && | ||
| sudo zypper install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo && | ||
| sudo usermod -aG docker $USER && newgrp docker | ||
| sudo dockerd & && | ||
| sleep 30 | ||
| " | ||
| ;; | ||
| *) | ||
| echo "Unsupported distro for Docker install: $distro" | tee -a "$log_file" | ||
| ;; | ||
| esac | ||
|
|
||
| # # Start Docker daemon | ||
| # docker exec -d "$container_id" sh -c "dockerd &" | ||
| # sleep 5 | ||
| fi | ||
|
|
||
|
Comment on lines
+85
to
+130
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix:
Apply this minimal patch in all three distro branches. - apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin &&
- sudo usermod -aG docker $USER && newgrp docker
- sudo dockerd & &&
- sleep 30
+ apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin &&
+ target_user='"${user:-}"'; if [ -n "$target_user" ] && id -u "$target_user" >/dev/null 2>&1; then usermod -aG docker "$target_user"; fi
+ nohup dockerd > /var/log/dockerd.log 2>&1 & disown
+ i=0; until docker info >/dev/null 2>&1 || [ $i -ge 30 ]; do i=$((i+1)); sleep 1; done
@@
- sudo dnf -y install dnf-plugins-core sudo &&
- sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo &&
- sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin &&
- sudo usermod -aG docker $USER && newgrp docker
- sudo dockerd & &&
- sleep 30
+ dnf -y install dnf-plugins-core sudo || yum -y install yum-utils sudo &&
+ (dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo || \
+ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo) &&
+ (dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin || \
+ yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin) &&
+ target_user='"${user:-}"'; if [ -n "$target_user" ] && id -u "$target_user" >/dev/null 2>&1; then usermod -aG docker "$target_user"; fi
+ nohup dockerd > /var/log/dockerd.log 2>&1 & disown
+ i=0; until docker info >/dev/null 2>&1 || [ $i -ge 30 ]; do i=$((i+1)); sleep 1; done
@@
- sudo zypper addrepo https://download.docker.com/linux/sles/docker-ce.repo &&
- sudo zypper install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo &&
- sudo usermod -aG docker $USER && newgrp docker
- sudo dockerd & &&
- sleep 30
+ zypper -n addrepo https://download.docker.com/linux/sles/docker-ce.repo docker-ce || \
+ zypper -n addrepo https://download.docker.com/linux/opensuse/docker-ce.repo docker-ce &&
+ zypper -n install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo ||
+ zypper -n install docker docker-cli containerd sudo &&
+ target_user='"${user:-}"'; if [ -n "$target_user" ] && id -u "$target_user" >/dev/null 2>&1; then usermod -aG docker "$target_user"; fi
+ nohup dockerd > /var/log/dockerd.log 2>&1 & disown
+ i=0; until docker info >/dev/null 2>&1 || [ $i -ge 30 ]; do i=$((i+1)); sleep 1; done
🧰 Tools🪛 Shellcheck (0.10.0)[warning] 86-86: install_docker is referenced but not assigned. (SC2154) 🤖 Prompt for AI Agents |
||
| # Execute build script inside the container and save logs | ||
| if [ "$user" == "test" ]; then | ||
| docker exec "$container_id" su - test -c "bash $script_path -$build_arg" &> "$log_file" | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Guard against unset install_docker (SC2154) and prefer = over ==
Avoid unbound var warnings and make the check robust when the key is missing in config.txt.
📝 Committable suggestion
🧰 Tools
🪛 Shellcheck (0.10.0)
[warning] 86-86: install_docker is referenced but not assigned.
(SC2154)
🤖 Prompt for AI Agents