5
私は複数のコンテナを持つアプリケーションを持っています。簡単インストールに 、私は梱包イメージを使用することにしました。 私が期待するshでパイプを使用すると "docker-compose"エラーが発生する(echo "docker-compose ..." | sh)
$ docker run my_application install | sh
以下のようなものです - >いくつかの初期の仕事をしてまでのすべてのコンテナ
のしかし、私はとstuckedだ - >レジストリ
$ docker run my_application up | sh
からすべての関連画像を引っ張ります以下の問題。
$ echo "docker-compose exec cassandra cqlsh -e 'desc keyspaces'" | sh
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "compose/cli/main.py", line 57, in main
File "compose/cli/main.py", line 108, in perform_command
File "compose/cli/main.py", line 353, in exec_command
File ".tox/py27/lib/python2.7/site-packages/dockerpty/pty.py", line 338, in start
File ".tox/py27/lib/python2.7/site-packages/dockerpty/io.py", line 32, in set_blocking
ValueError: file descriptor cannot be a negative integer (-1)
docker-compose returned -1
エラーをドッカーから作成しました。 以下のようにしようとするとうまくいきます。
$ echo "docker exec my_application_cassandra_1 cqlsh -e 'desc keyspaces'" | sh
system_traces system
$ sh -c "docker-compose exec cassandra cqlsh -e 'desc keyspaces'"
system_traces system
が、私はとのパイプを使用するときにドッキングウィンドウ-構成 それは常にエラーを置きます。
私はこれをどのように処理することができますか?
を。 Bashでコマンドを自分で実行すると、うまく動作します。しかし、cronジョブとして、あなたと同じエラーが発生します。同じスタックトレースファイルと行番号と関数名、あなたと戻りコード-1。コマンドは次の通りです: '/ usr/local/bin/docker-compose exec postgres pg_dumpall --username = postgres | gzip> $ postgres_backup_path'(私は手動で(うまく動作する)、時にはcronジョブ(動作しないかもしれません)を実行するバックアップスクリプトにその行があります。 – KajMagnus
私はDockerを直接次のように呼び出すことで問題を解決しました: '/ usr/bin/docker exec edm_postgres_1 pg_dumpall --username = postgres | gzip> $ postgres_backup_path' - CronとBashの両方でうまく動作します。 – KajMagnus