問題タブ [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.
fig - Fig up でビルドのみのオプション
IU には次のものがありますfig.yml
。
doc1:
build: Dockerfile1
doc2:
build: Dockerfile2
Dockerfile2 はビルドFROM
Dockerfile1 です。
だから私fig up
がしたいとき
- Dockerfile1 のみをビルド (実行しない)
- Dockerfile2 をビルドして実行する
これは可能ですか?
mysql - Docker + fig / 構成 + nginx + node.js + mysql + redis
Docker の複数のコンテナーで Node.js アプリをセットアップしようとしています。私のアプリは現在、1つのUbuntu DOドロップレットにあり、次を使用しています:
- Node.js (エクスプレス 4)
- アプリ データベースの mysql
- キー値ストアの redis
- nginx を使用して負荷分散を行い、静的ファイルを提供します。
コンテナーごとに 1 つずつ、さまざまなパーツを Docker 化する必要があります。それから、Docker-Compose (以前は Fig として知られていた) を使用して、さまざまなコンテナーを単純に記述し、それらの間のリンクをセットアップします。マルチコンテナのアプローチについてはよくわかりません。
nginx 用に
1 つ、Node.js 用に 1 つ、エクスプレス アプリ用
に 1 つ、MySql 用
に 1 つ、Redis 用に 1 つ
Docker-compose.yml はどのようになりますか? nginx、mysql、redis は変更されていない公式イメージになると思いますか? node.js には Dockerfile を指すビルド ディレクティブがありますが、node.js の公式イメージと構成手順に基づいていることに注意してください。たとえば、mysql と redis を構成/プロビジョニングする必要があるため、それぞれが独自の Dockerfile で分離する必要があるということですか?
コンテナ間をリンクするにはどうすればよいでしょうか。ボリュームを使用してファイルをコピーし、ポートを設定し、hosts ファイルを調整して some.domain.com を nginx IP にマップしますか?
次に、nodemon や PM2 などのいくつかの npm パッケージをグローバルにインストールし、いくつかの cron ジョブを設定する必要があります... (Node.js コンテナー上で?)
これが最初のドラフトです。この新しいセットアップをよりよく理解するために、何か助けていただければ幸いです。
Docker-compose.yml
Dockerfile
この単純なプロジェクトをベースとして使用していますが、アプリには必要です
docker - docker を使用して複雑なアプリケーションを定義および実行するためのツール
開発ライフサイクルで docker を使用する場合、複雑なアプリケーションを定義して実行するためのツールが必要になるのが一般的です。実際には、 fig、クレーン、最新のdocker-composeなどのいくつかの代替手段が存在します。
私はイチジクとクレーンの経験がありますが、最近 docker-compose の参考文献をいくつか見つけましたが、なぜ docker グループがこの分野で車輪を再発明したのかわかりません。
たとえば、探索的テスト、単体テスト、または postgres、redis、mongodb などのデータ サービスのグループのウェイクアップなどを行うために、docker を使用して複雑な環境をローカル マシンで実行することをお勧めします。
nginx - Docker はイメージにアタッチしません
docker コンテナーをセットアップするために使用している fig.yml ファイルがあります。./fig up と入力してこれを実行すると、次のように出力されます。
したがって、それが完了すると、すべてが稼働します。私の問題は、何らかの理由で、セットアップした nginx コンテナーにアタッチされていないことです。docker ps コマンドの出力は次のとおりです。
したがって、memcache イメージ、php イメージ、および percona イメージはすべて問題ありませんが、あるべき nginx docker イメージはありません。
以下は、基本的にすべてを起動するファイルである fig.yml ファイルをセットアップする方法です。何が起こっているのかについて何か考えがある人はいますか? デーモンをオフに設定しているため、自動的に終了しないことに注意してください。
fig.yml ファイルはこちら:
また、何か不足している場合に備えて、nginx Dockerfile を含めることも考えました。
Nginx Dockerfile
linux - Docker - ボリュームがコンテナに最新のファイルをマウントしていません
問題
Docker で新しいコンテナーを開始するときに、ボリュームをマウントして、ホスト マシン上の任意のファイルに最新の更新を取得し、コンテナーでそれらを操作できるようにしたいと考えています。ただし、私が見つけたのは、イメージをビルドするときに Docker がボリュームをマウントしていることです。代わりに、新しいコンテナーを作成するときにボリュームをマウントする必要があります。
私は Docker を使用して開発環境を管理しているため、コードの一部を更新するたびに、開発環境の Dockerイメージを再構築する必要があり、これには通常 20 ~ 30 分かかります。明らかに、これは私が Docker に求めている機能ではありません。
開発環境コンテナーを構築するために使用しているものは次のとおりです。
Dockerfile
fig.yml
fig.yml
また、ビルドを簡単にするためにファイルを使用します。
実行するには、次を使用します。fig build
コンテナーにアクセスしてソース コードをコンパイルするには、次を使用します。docker run -it <container_id>
多分私は私のコマンドで何か間違ったことをしていますか? fig up
インタラクティブなシェルが得られないため、使用しませんdocker run -it <container_id>
。代わりに使用します。ボリュームを自動的にマウントするように使用fig
することにしましたが、期待どおりに機能しません。
これは私の問題をより明確に示すための画像です
caching - docker がキャッシュからイメージを作成できないようにする
私が抱えている問題は、いくつかの構成変更を行ったことです。すべての Docker イメージを起動する fig.yml ファイルがあります。そのため、必要な構成ファイルを変更しましたが、./fig up すると、各 docker イメージが再作成されます。docker に fig.yml ファイルからキャッシュなしでイメージを再構築させるために使用できるコマンドは何ですか? どんな助けでも大歓迎です。
docker - docker-compose で mem_limit を使用できますか? そしてどうやって?
mem_limit は docker-compose でサポートされていますか? どうすればテストできますか?
次のdocker-compose.ymlがあります
コンテナーが実際に 60 MB の RAM を超えていないことを証明するにはどうすればよいですか?
私は使っている:
- ドッカー 1.3.1
- docker-compose 1.1.0