EC2のuser dataで$を使いたい
解決したいこと
EC2インスタンスの起動時に指定できるuser_dataで$を含む文字列を入れるとうまく動作しません。
発生している問題・エラー
$の使用を知るためにserviceファイルの中で3パターン$を入れてみる
#!/bin/bash
yum install -y docker
cat <<EOF2 > /etc/systemd/system/docker.httpd.service
[Unit]
Description=httpd Container
After=docker.service
Requires=docker.service
[Service]
Environment="CONTAINER_NAME=httpd-container"
TimeoutStartSec=0
Restart=always
ExecStartPre=-/usr/bin/docker stop $${CONTAINER_NAME} ☆
ExecStartPre=-/usr/bin/docker rm $$${CONTAINER_NAME} ☆
ExecStartPre=/usr/bin/docker pull httpd
ExecStart=/usr/bin/docker run --rm --name "${CONTAINER_NAME}" -p 80:80 httpd ☆
[Install]
WantedBy=multi-user.target
EOF2
systemctl enable --now docker.httpd
systemctl restart docker.httpd
systemctl daemon-reload
結果↓全部だめ
[Unit]
Description=httpd Container
After=docker.service
Requires=docker.service
[Service]
Environment="CONTAINER_NAME=httpd-container"
TimeoutStartSec=0
Restart=always
ExecStartPre=-/usr/bin/docker stop 2224{CONTAINER_NAME}
ExecStartPre=-/usr/bin/docker rm 2224
ExecStartPre=/usr/bin/docker pull httpd
ExecStart=/usr/bin/docker run --rm --name "" -p 80:80 httpd
[Install]
WantedBy=multi-user.target
適切に$を投入できるようにする方法を探しています。${CONTAINER_NAME}
のようにしたいです。
ご存知の方がいらっしゃればご享受いただけると幸いです。
(まあ,dockerをEC2の中で使うならばそもそもECS使えば良いんですが)