コンテナが稼動しているdynoがある場合、docker exec -it blarg /bin/bash
のHerokuに相当するものは何ですか?つまり、すでに実行中のコンテナにシェルをどのように開くことができますか?Heroku dyno上で動作するDockerコンテナへのシェル。どうやって?
例Dockerfile:
FROM heroku/heroku:16
CMD while true; do sleep 1; done
例は、実行します。
$ heroku container:push my_app
<wait a minute>
$ heroku ps
=== my_app (Free): /bin/sh -c while\ true\;\ do\ sleep\ 1\;\ done (1)
my_app.1: up 2017/10/09 12:13:07 -0600 (~ 4m ago)
をこれまでのところは良いです。
しかし、良い対策のために今...
$ heroku ps:exec --dyno=my_app.1
Establishing credentials... error
▸ Could not connect to dyno!
▸ Check if the dyno is running with `heroku ps'
私はこの時点でheroku ps
をチェックし、それはダイノがまだ実行されていることを示しています。
はい、私はHerokuが提案するすべてのことを行っていますto enable Docker support。ドキュメントごとに、bash
、curl
、openssh
、およびpython
が存在することを確認しながら、自分の選択したベースイメージを使用しようとしました。上記の例に示すように、私はHeroku-16ベースイメージを使ってみました。
(私はこれらの手順を適用していないプライベートスペースを使用していないので、リンクのドキュメントにもプライベート空間に必要な手順を参照。)。
単に 'sh'を' bash'へのシンボリックリンクで置き換えても驚いています。 'sh'として呼び出された場合、' bash'は、 'プロセス置換'(https:///)をサポートしていないposix準拠モード(https://manpages.debian.org/stretch/bash/bash.1.en.html) /www.gnu.org/software/bash/manual/html_node/Process-Substitution.html)。 'heroku-exec.sh'はプロセス置換(' ... <(curl ...) ')を使います。 '$ rm/bin/sh && ln -s/bin/bash/bin/sh'を試してください。$/bin/sh/c "cat <(echo 1)" ' – wwerner
heroku-execスクリプトに' set + o posix'を追加すると助けになります。 – wwerner