は私がPHPをサポートしてnginxの走る以下docker-compose.yml
のファイルがあります。docker-composeで別のコンテナにリンクされたコンテナでLinuxデーモンを実行するには?
version: '3'
services:
nginx:
container_name: my-app-nginx
image: nginx:1.13.6
ports:
- 8080:80
volumes:
- ./nginx-default.conf:/etc/nginx/conf.d/default.conf
- ./my-app:/var/www/my-app
restart: always
depends_on:
- php
php:
container_name: my-app-php
image: php:7.1-fpm
volumes:
- ./my-app:/var/www/my-app
restart: always
PHPアプリケーション/var/www/my-app
内部のニーズLinuxのデーモンと通信するために(のはそれmyappd
を呼びましょう)。
私はそれを参照してください方法は、私はどちらかを行う必要があります。
- は
chmod +x
と、それが実行可能にし、/usr/local/bin
にnginx
容器にmyappd
をコピーし、バックグラウンドで実行します。 myappd
〜/usr/local/bin
をコピーし、chmod +x
で実行可能にしてフォアグラウンドで実行します。
私はDockerを初めて使っていて、これについて研究して学んでいますが、私がDocker Composerを使用していることを考えれば、おそらくオプション2はお勧めですか? Dockerに関する私の限られた知識を考えると、このバイナリを実行するには、このコンテナにLinuxベースのイメージ(Ubuntuなど)が必要であると推測する必要があります。だから、おそらくオプション1が好まれるだろうか?あるいは、オプション2は最小限のUbuntuイメージで可能でしょうか、そういうイメージなしでも可能でしょうか?
いずれにしても、作曲者ファイルでどのように実装すればいいのか分かりません。特にオプション2では、PHPアプリケーションはどのように別のコンテナ内のデーモンと通信しますか?私はnginx/phpサービスのためにやったようにボリューム(バイナリがある場所)を "共有"するだけで十分でしょうか?それとも何か他のものが必要ですか?
あなたの質問は私の元々の質問です。それは私がする方法を知る必要があるものです。 –
私はmyappdをどこに置くべきかを言いませんが、どこにオリジナルのmyappdがあるのかを尋ねます。ホストマシンで? –
はい、ホストマシンにありますので、コンテナにコピーしてバックグラウンドで実行する必要があります。 –