2
到目前爲止我已經嘗試過所有的入口點和命令,我得到這個錯誤「沒有這樣的文件或目錄」。 我需要: 1)採用特殊的捲曲請求AWS 2)運行ETCD容器設置HOSTIP的環境變量,給它使用$ HOSTIP在ECS中運行一個etcd容器需要什麼入口點/命令?
看來,它需要一個字符串數組參數,但我不確定它是如何工作的。我想的命令是:
/bin/sh -c "export export HostIP=$(curl -s 169.254.169.254/latest/meta-data/local-ipv4)"
和
etcd -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001
-other-similar-args...
,但我需要改變他們是逗號分隔。
1)如何轉義逗號/引號? 2)我是否需要使用逗號併爲每個空間啓動一個新的字符串? 3)有沒有人有一個工作的例子???
更新:我做了一個自定義的容器包含此一entrypoint.sh:
#!/bin/sh export HOST=$(curl -s 169.254.169.254/latest/meta-data/local-hostname) export HostIP=$(curl -s 169.254.169.254/latest/meta-data/local-ipv4)
/usr/local/bin/etcd -name etcd0 \ -advertise-client-urls
http://${HostIP}:2379,http://${HostIP}:4001 \ -listen-client-urls
http://0.0.0.0:2379,http://0.0.0.0:4001 \
-initial-advertise-peer-urls http://${HostIP}:2380 \ -listen-peer-urls http://0.0.0.0:2380 \ -initial-cluster-token etcd-cluster-1 \ -initial-cluster etcd0=http://${HostIP}:2380 \
-initial-cluster-state new
現在的問題是,容器啓動,但本地主機使用,而不是0.0.0.0或與我們獲取IP來自AWS的捲曲。它似乎遭受某種錯誤,並回落到本地主機。
謝謝 - 我製作了自己的圖像,並將所有內容放入entrypoint.sh,然後將ECS入口點/命令留空。現在問題是圖像中出現了問題 - HostIP地址似乎回落到默認的127.0.0.1,而不是我通過它的那個。任何想法如何解決這個問題? –
我需要看到你的'entrypoint.sh' –
#!/ bin/sh export HOST = $(curl -s 169.254.169.254 /latest/meta-data/local-hostname) export HostIP = $(curl -s 169.254.169.254 /latest/meta-data/local-ipv4) /usr/local/bin/etcd -name etcd0 \ -advertise-client-url http:// $ {HostIP}:2379,http :// $ {HostIP}:4001 \ -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \ -initial-advertise-peer-urls http:// $ {HostIP}:2380 \ -listen-peer-urls http://0.0.0.0:2380 \ -initial-cluster-token etcd-cluster-1 \ -initial-cluster etcd0 = http:// $ { HostIP}:2380 \ -initial-cluster-state new –