問題タブ [dockerfile]
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 - dockerfiles CMD を使用してシェル スクリプトを実行する方法
dockerfiles を使用して単純なコンテナーを構築しています。は次のDockerfile
とおりです。
の内容run.sh
は次のとおりです。
用のシンプルな Java アプリケーションですpub/sub
。
現在、rabbitmq を実行している別のコンテナーがあり、2 つのコンテナーをリンクしていますが、それぞれの試行が失敗し、pub/sub
コンテナーが起動しません。誰かがこの問題をデバッグする方法についてアドバイスできますか? どういうわけかdockerログには何もありません。
コンテナをリンクする方法は次のとおりです。sudo docker run -d -P --name pub_sub --link rabbitmq:rabbitmq1 image_pub_sub
そして、これが私のpub/sub
コードでエイリアス名を使用する方法です
パブリッシュ コードが rabbitmq コンテナーにキューを作成し、メッセージのプッシュを開始することを期待していました。私のサブスクライバー コードは、基本的に同じ rabbitmq に接続し、メッセージの読み取りを開始します。
コマンドを実行しても何も起こらず、新しいコンテナーの長い ID が出力されて終了します。実行するsudo docker ps -a
と、次のように表示されます。
これは、コンテナが実行されていないことを意味します。
ちょうど今/etc/hosts
、次のコマンドを使用して新しいコンテナーを起動し、 を更新してテストしました: sudo docker run -i -t image_pub_sub /bin/bash
. /etc/hosts
この新しいコンテナの を変更し、次のエントリを追加<IP_ADDRESS> rabbitmq1
してスクリプト/opt/pubsub/run.sh
を実行すると、nohup ファイルに次のメッセージが追加されます。
ubuntu - Dockerfile の USER ステートメントの後の Ubuntu Docker コンテナーの特権
Dockerfile を作成しました
親イメージとして。
その後、Dockerfile は、sudo 権限なしで新しいグループとユーザーを作成します。
アプリケーションを実行する前に、この新しいものに切り替えます
質問: この設定により、イメージがビルドされてコンテナーが実行された後に (例: を使用して) root 権限を再度取得できるようになりdocker exec -it
ますか?
clojure - Dockerコンテナ内でコンパイルされたjarを介してClojure Compojureアプリをヘッドレスで実行するにはどうすればよいですか?
更新: この質問は、元の一連のコメント投稿者が回答を残してから変更されました。混乱をお詫び申し上げます。
これは私のコード リポジトリhttps://github.com/Integralist/spurious-clojure-exampleで、私が取り組んでいるものの例として使用できます。
上記のリポジトリは、Clojars にまだ公開していないライブラリに依存していることに注意してください (まだテストしているため、この質問が開かれました)。ここでライブラリのソースコードを見ることができます: https://github.com/Integralist/spurious-clojure-aws-sdk-helper
私は Compojure で書かれた "hello world" Clojure Web アプリを持ってlein ring server
いlein run
ます-main
。また、jar にコンパイルして実行すると、ある程度実行されますjava -jar app.jar
。
私の問題はjava -jar app.jar
、Dockerコンテナー内からデフォルトを実行しようとすると、次のエラーが表示されることです...
私のコードは現在、次の-main
ような関数を使用しています...
...しかし、サーバーをヘッドレスで起動するにはどうすればよいですか? Compojure ボイラープレート コードを完全にたどって、ヘッドレスまたはブラウザー経由でいつ実行するかをどこでどのように認識しているかを解読することはできませんか?
コマンドラインでできることは知っていますがlein ring server-headless
、それと同等のプログラムは何ですか?
docker - Docker でデータベース スキーマを管理する「正しい」方法
Java Web アプリケーションと postgresql データベースで構成されるオープン ソース アプリケーションを開発しています。理想的には、造船所のクイックスタートで詳述されているプロセスと同様に展開可能です。
- データのみのコンテナーを実行する
- DB コンテナを実行する
- アプリケーション コンテナを実行する
データベース スキーマをセットアップするのに推奨される時期はありますか? データベース イメージの Dockerfile がビルド時にスキーマを作成するようにすることを考えていましたが、現時点では明らかに postgres が実行されていません。
docker - Docker は 7000 から 8000 までのすべてのポートまたはポート範囲を公開します
Dockerfile でポート範囲を指定できますか
コンテナーを実行するときに、これらすべての公開ポートをホスト マシンの同じポートにバインドしますか?
docker - udp マルチキャストを eth0 から docker0 に転送します
UDP マルチキャスト パケットをリッスンしている Java アプリケーションを実行している Docker コンテナがあります。コンテナ内でパケットを受信していませんが、ホスト マシンの eth0 に表示されます。
docker がこれらのパケットを自動的に取得してコンテナーに転送する方法はありますか?
ありがとう
nginx - Docker はイメージにアタッチしません
docker コンテナーをセットアップするために使用している fig.yml ファイルがあります。./fig up と入力してこれを実行すると、次のように出力されます。
したがって、それが完了すると、すべてが稼働します。私の問題は、何らかの理由で、セットアップした nginx コンテナーにアタッチされていないことです。docker ps コマンドの出力は次のとおりです。
したがって、memcache イメージ、php イメージ、および percona イメージはすべて問題ありませんが、あるべき nginx docker イメージはありません。
以下は、基本的にすべてを起動するファイルである fig.yml ファイルをセットアップする方法です。何が起こっているのかについて何か考えがある人はいますか? デーモンをオフに設定しているため、自動的に終了しないことに注意してください。
fig.yml ファイルはこちら:
また、何か不足している場合に備えて、nginx Dockerfile を含めることも考えました。
Nginx Dockerfile