問題タブ [fig]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - docker-compose コマンドと手動コマンドの違い
私がやろうとしていること
ある docker コンテナーで yesod Web アプリケーションを実行し、別の docker コンテナーの postgres データベースにリンクしたいと考えています。
私が試したこと
次のファイル階層があります。
は次のdocker-compose.yml
ようになります。
実行sudo docker-compose up
すると、API コンテナの起動にまったく失敗するか、または同じ頻度で次のエラーが発生します。
ただし、実行すると、sudo docker-compose database up &
作成を使用せずに API コンテナーを起動し、代わりに
ファイルexport
に設定されている環境変数docker-compose.yml
を手動で実行yesod devel
して、ローカルホストで自分のサイトに正常にアクセスできます。
最後に、単独で実行すると、3 番目の異なる動作が得sudo docker-compose run api
られます。これは正常に開始されたようですが、ブラウザでページにアクセスできません。実行sudo docker-compose run api /bin/bash
することで、このコンテナーを調べることができ、設定されている環境変数docker-compose.yml
がすべて正しく設定されていることを確認できました。
望ましい動作
バックグラウンドでデータベースを実行してから、実行するだけで API コンテナーのシェルに環境を手動で設定して得た結果を得たいと考えていますsudo docker-compose up
。
質問
明らかに、私が試みている 3 つの異なるアプローチは、わずかに異なることを行います。しかし、docker と docker-compose についての私の理解からすると、それらは本質的に同等であると期待できます。誰かがどのように、なぜそれらが異なるのか、可能であればどのように私が望む結果を達成できるのかを説明してもらえますか?
docker - Docker/Boot2Docker/Fig + RabbitMQ ホストの問題。pika.exceptions.AMQPConnectionError: [Errno -2] 名前またはサービスが不明です
RabbitMQ と Docker/Fig の学習を始めたばかりです。Rabbit Server、Producer、および Consumer にそれぞれ 1 つずつ、3 つの fig コンテナーを使用した非常に単純な例があります。で、次のエイリアスに/etc/hosts
設定しました:boot2docker ip
dockerhost
fig up -d
RabbitMQ サーバーの場合、すべてが正常に機能します。ブラウザを開いてdockerhost:PORTNUM
、RabbitMQ コントロール パネルにアクセスできます。
私の RabbitMQ プロデューサーでは、接続ホストをdockerhost
次のように設定しました。
私の設定ファイルは次のようになります。
ただしfig up -d
、RabbitMQ プロデューサーで実行すると、接続エラーが発生します。
エイリアスboot2docker ip
の代わりに RabbitMQ ホスト名に直接入力することで、RabbitMQ プロデューサーを適切に動作させることができます。dockerhost
上記の変更により、すべてが適切に機能します。
私の質問はhostname = dockerhost
、実際の IP アドレスを入力する代わりに、RabbitMQ プロデューサーを使用して動作させるにはどうすればよいですか?
アップデート
fig.yml
これが動作する私のRabbitMQサーバーdockerhost
です:
そして、ここに私のRabbitMQプロデューサーがfig.yml
あり、Dockerfile
これは動作しませんdockerhost
:
docker - Docker 構成環境とパス
Docker Compose を使用してローカル開発環境を作成しようとしています。私はこの例を使い始めましたhttps://github.com/b00giZm/docker-compose-nodejs-examples/tree/master/03-express-gulp-watch、それは魅力のように機能しています。問題ありません。
ただし、その例の構造は単純すぎて、私のニーズには合いません。アプリケーションを本番環境で Coreos で実行する予定なので、他の構成ファイルもたくさん必要です。これは、上記の例を大まかに変更した方法です。
本番用と開発用に別々の dockerfile を使用したいので、そこに実際のアプリケーション用の Dockerfile があります。
また、docker-compose.yml を次のように変更しました。
この後、「docker-compose build」はうまくいきますが、「docker-compose up」はうまくいきません。gulpfile が見つからないというエラーが表示されます。私の論理では、これはボリュームマウントが原因であり、私が想定しているように、それらは親ディレクトリでは機能しません。
私が間違っていることは何ですか?または、この状況の実際の例を教えてください。共有してください。
docker - docker-compose.yml でプロジェクト名を設定/取得する方法
docker-compose プロジェクト名を設定するか、構成ファイル内で参照できるようにしようとしています。これらのいずれかが可能ですか?
私が尋ねている理由は、私がこのチュートリアルに従っているため、最終的に次のdocker-container.yml
ファイルが作成されたからです。
構成によりimage: myapp_web
、これはプロジェクト名自体がmyapp
. これは、名前の付いたディレクトリで作業しているmyapp
場合、または を使用している場合に当てはまりますdocker-compose -p myapp
。
しかし、誰かがディレクトリ名を変更するとすぐに、これはクラッシュします。COMPOSE_PROJECT_NAME
オプションを渡さずにカスタム変数を使用するように docker-compose に伝えたいと思い-p fancyname
ます。
私が想像できる別の方法は、ある種のimage: {$COMPOSE_PROJECT_NAME
}_web を yml ファイルに渡すことですが、これが実現できるかどうかは本当にわかりません。
何か案が?
python - モジュールを含むディレクトリを、サブフォルダーから元のソースへのシンボリックリンクである Python パスにインポートする方法は?
docker コンテナーの child1 と child2 を実行しようとしています。私たちが持っているとしましょう:
更新しました
私は次のようなことをしました
mody.pyで私がそうするとき、
できます;
しかし、私が行うときはtest1_dir> smfile.pyから
ImportError をスローします。
そのディレクトリから同じモジュールにアクセスする方法を知りたいですか? symlink_target_folder を PYTHONPATH にエクスポートすると、うまくいく可能性があります。私はやった
export PYTHONPATH=$PYTHONPATH:/symlink_target_folder
` mody.pyからできること
しかし、それが PYTHONPATH によるものだとは思いません。symlink_target_folder と mody.py が同じフォルダーにあるだけです。
これを解決するにはどうすればよいですか?この問題にアプローチするより良い方法は何でしょうか? 私はこれをチェックしました
python - figを使用してdockerでpipを更新するには?
docker の pip が古いようです:
ive pip 6.1 はマシン上にあるものですが、それは古い Docker バージョンだと思います。どこにあるのかわからないので、プルして更新できます。
ruby-on-rails - Docker Compose: リンクされたサービスへの環境変数の公開
私は Docker Compose をいじって、Oracle バックエンドで Rails アプリを実行するコンテナーを作成しています。
Dockerfile と docker-compose.yml
これは、Docker コンテナーが ruby-oci8 gem をインストールしようとするまでうまく機能します。これは、いくつかの Oracle 固有の環境変数を探します。
これらの変数は、Oracle コンテナーの Dockerfile で公開されます。
問題は、Oracle コンテナーのこの環境変数を Web コンテナーに公開するにはどうすればよいかということです。