Skip to content

Commit 9f73b67

Browse files
authored
refactor(podman): replace deprecated commands with Quadlets (#13052)
1 parent 192e295 commit 9f73b67

File tree

3 files changed

+109
-47
lines changed

3 files changed

+109
-47
lines changed

ct/podman-homeassistant.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function update_script() {
2323
header_info
2424
check_container_storage
2525
check_container_resources
26-
if [[ ! -f /etc/systemd/system/homeassistant.service ]]; then
26+
if [[ ! -f /etc/containers/systemd/homeassistant.container ]]; then
2727
msg_error "No ${APP} Installation Found!"
2828
exit
2929
fi

install/podman-homeassistant-install.sh

Lines changed: 65 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -45,32 +45,58 @@ systemctl enable -q --now podman.socket
4545
echo -e 'unqualified-search-registries=["docker.io"]' >>/etc/containers/registries.conf
4646
msg_ok "Installed Podman"
4747

48+
mkdir -p /etc/containers/systemd
49+
4850
read -r -p "${TAB3}Would you like to add Portainer? <y/N> " prompt
4951
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
5052
msg_info "Installing Portainer $PORTAINER_LATEST_VERSION"
5153
podman volume create portainer_data >/dev/null
52-
$STD podman run -d \
53-
-p 8000:8000 \
54-
-p 9443:9443 \
55-
--name=portainer \
56-
--restart=always \
57-
-v /run/podman/podman.sock:/var/run/docker.sock \
58-
-v portainer_data:/data \
59-
portainer/portainer-ce:latest
54+
cat <<EOF >/etc/containers/systemd/portainer.container
55+
[Unit]
56+
Description=Portainer Container
57+
After=network-online.target
58+
59+
[Container]
60+
Image=docker.io/portainer/portainer-ce:latest
61+
ContainerName=portainer
62+
PublishPort=8000:8000
63+
PublishPort=9443:9443
64+
Volume=/run/podman/podman.sock:/var/run/docker.sock
65+
Volume=portainer_data:/data
66+
67+
[Service]
68+
Restart=always
69+
70+
[Install]
71+
WantedBy=default.target multi-user.target
72+
EOF
73+
systemctl daemon-reload
74+
systemctl enable -q --now portainer
6075
msg_ok "Installed Portainer $PORTAINER_LATEST_VERSION"
6176
else
6277
read -r -p "${TAB3}Would you like to add the Portainer Agent? <y/N> " prompt
6378
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
6479
msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION"
65-
podman volume create temp >/dev/null
66-
podman volume remove temp >/dev/null
67-
$STD podman run -d \
68-
-p 9001:9001 \
69-
--name portainer_agent \
70-
--restart=always \
71-
-v /run/podman/podman.sock:/var/run/docker.sock \
72-
-v /var/lib/containers/storage/volumes:/var/lib/docker/volumes \
73-
portainer/agent
80+
cat <<EOF >/etc/containers/systemd/portainer-agent.container
81+
[Unit]
82+
Description=Portainer Agent Container
83+
After=network-online.target
84+
85+
[Container]
86+
Image=docker.io/portainer/agent:latest
87+
ContainerName=portainer_agent
88+
PublishPort=9001:9001
89+
Volume=/run/podman/podman.sock:/var/run/docker.sock
90+
Volume=/var/lib/containers/storage/volumes:/var/lib/docker/volumes
91+
92+
[Service]
93+
Restart=always
94+
95+
[Install]
96+
WantedBy=default.target multi-user.target
97+
EOF
98+
systemctl daemon-reload
99+
systemctl enable -q --now portainer-agent
74100
msg_ok "Installed Portainer Agent $PORTAINER_AGENT_LATEST_VERSION"
75101
fi
76102
fi
@@ -81,18 +107,28 @@ msg_ok "Pulled Home Assistant Image"
81107

82108
msg_info "Installing Home Assistant"
83109
$STD podman volume create hass_config
84-
$STD podman run -d \
85-
--name homeassistant \
86-
--restart unless-stopped \
87-
-v /dev:/dev \
88-
-v hass_config:/config \
89-
-v /etc/localtime:/etc/localtime:ro \
90-
-v /etc/timezone:/etc/timezone:ro \
91-
--net=host \
92-
homeassistant/home-assistant:stable
93-
podman generate systemd \
94-
--new --name homeassistant \
95-
>/etc/systemd/system/homeassistant.service
110+
cat <<EOF >/etc/containers/systemd/homeassistant.container
111+
[Unit]
112+
Description=Home Assistant Container
113+
After=network-online.target
114+
115+
[Container]
116+
Image=docker.io/homeassistant/home-assistant:stable
117+
ContainerName=homeassistant
118+
Volume=/dev:/dev
119+
Volume=hass_config:/config
120+
Volume=/etc/localtime:/etc/localtime:ro
121+
Volume=/etc/timezone:/etc/timezone:ro
122+
Network=host
123+
124+
[Service]
125+
Restart=always
126+
TimeoutStartSec=300
127+
128+
[Install]
129+
WantedBy=default.target multi-user.target
130+
EOF
131+
systemctl daemon-reload
96132
systemctl enable -q --now homeassistant
97133
msg_ok "Installed Home Assistant"
98134

install/podman-install.sh

Lines changed: 43 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -45,32 +45,58 @@ systemctl enable -q --now podman.socket
4545
echo -e 'unqualified-search-registries=["docker.io"]' >>/etc/containers/registries.conf
4646
msg_ok "Installed Podman"
4747

48+
mkdir -p /etc/containers/systemd
49+
4850
read -r -p "${TAB3}Would you like to add Portainer? <y/N> " prompt
4951
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
5052
msg_info "Installing Portainer $PORTAINER_LATEST_VERSION"
5153
podman volume create portainer_data >/dev/null
52-
$STD podman run -d \
53-
-p 8000:8000 \
54-
-p 9443:9443 \
55-
--name=portainer \
56-
--restart=always \
57-
-v /run/podman/podman.sock:/var/run/docker.sock \
58-
-v portainer_data:/data \
59-
portainer/portainer-ce:latest
54+
cat <<EOF >/etc/containers/systemd/portainer.container
55+
[Unit]
56+
Description=Portainer Container
57+
After=network-online.target
58+
59+
[Container]
60+
Image=docker.io/portainer/portainer-ce:latest
61+
ContainerName=portainer
62+
PublishPort=8000:8000
63+
PublishPort=9443:9443
64+
Volume=/run/podman/podman.sock:/var/run/docker.sock
65+
Volume=portainer_data:/data
66+
67+
[Service]
68+
Restart=always
69+
70+
[Install]
71+
WantedBy=default.target multi-user.target
72+
EOF
73+
systemctl daemon-reload
74+
systemctl enable -q --now portainer
6075
msg_ok "Installed Portainer $PORTAINER_LATEST_VERSION"
6176
else
6277
read -r -p "${TAB3}Would you like to add the Portainer Agent? <y/N> " prompt
6378
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
6479
msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION"
65-
podman volume create temp >/dev/null
66-
podman volume remove temp >/dev/null
67-
$STD podman run -d \
68-
-p 9001:9001 \
69-
--name portainer_agent \
70-
--restart=always \
71-
-v /run/podman/podman.sock:/var/run/docker.sock \
72-
-v /var/lib/containers/storage/volumes:/var/lib/docker/volumes \
73-
portainer/agent
80+
cat <<EOF >/etc/containers/systemd/portainer-agent.container
81+
[Unit]
82+
Description=Portainer Agent Container
83+
After=network-online.target
84+
85+
[Container]
86+
Image=docker.io/portainer/agent:latest
87+
ContainerName=portainer_agent
88+
PublishPort=9001:9001
89+
Volume=/run/podman/podman.sock:/var/run/docker.sock
90+
Volume=/var/lib/containers/storage/volumes:/var/lib/docker/volumes
91+
92+
[Service]
93+
Restart=always
94+
95+
[Install]
96+
WantedBy=default.target multi-user.target
97+
EOF
98+
systemctl daemon-reload
99+
systemctl enable -q --now portainer-agent
74100
msg_ok "Installed Portainer Agent $PORTAINER_AGENT_LATEST_VERSION"
75101
fi
76102
fi

0 commit comments

Comments
 (0)