2017-01-20 22 views
0

開発環境を管理するためにdocker-composeを使用しています。 1つのコンポーネントはApacheリバースプロキシです。私は、httpd-vhosts.confを設定して、リクエストをホストに送り返す仮想ホストを含​​めるようにしました。ホストからドッカーに情報を渡す方法

次のように設定します。

FROM httpd:2.4 
#ssl 
ADD ./server.crt /usr/local/apache2/conf/ 
ADD ./server.key /usr/local/apache2/conf/ 
ADD ./server-bundle.crt /usr/local/apache2/conf/ 

#vhosts 
ADD ./httpd-vhosts.conf /usr/local/apache2/conf/extra 

RUN echo "Configuring Vhost" && \ 
sed -i '[email protected]#Include conf/extra/[email protected] conf/extra/[email protected]' /usr/local/apache2/conf/httpd.conf 

# Exposed ports 
EXPOSE 80 
EXPOSE 443 

どういうわけか、私は、次のコマンドを実行すると、現在これは、ハード、この

<VirtualHost *:80> 
    ProxyPass /http://10.0.2.2:8090/ 
    ProxyPassReverse /http://10.0.2.2:8090/ 

    ErrorLog "logs/cf.e-change.co-error_log" 
    CustomLog "logs/cf.e-change.co-access_log" common  
</VirtualHost 

のようにコーディングされているのhttpd-vhosts.confにHOSTの現在のゲートウェイIPアドレスに

を渡す必要があります netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'

ENVIRONMENT変数としてコンテナに渡す必要があるIPを返します。

これを行うにはどうすればよいですか?

ありがとうございます!

答えて

0

Docker Composeから環境変数をコンテナに渡すことができます。例えば。あなたはその後、MY_VARをエクスポート、またはちょうど同じコマンドラインで渡すことができ

version: '2' 

services: 
    test: 
    image: busybox 
    command: env 
    environment: 
     - MY_VAR 

:以下ドッキングウィンドウ-compose.ymlで

$ MY_VAR="hello world" docker-compose up 
Creating test_test_1 
Attaching to test_test_1 
test_1 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
test_1 | HOSTNAME=a3b5b5bf4afd 
test_1 | MY_VAR=hello world 
test_1 | HOME=/root 
test_test_1 exited with code 0 
+0

こんにちは、おかげでこれはよさそうです。スクリプトの結果として物事を渡す方法はありますか?私は、この情報を渡すMakefileを作成することができると思います。 – Istvano

+0

作成するymlの中にない場合は、独自のラッパーを作成して適切な変数を作成する必要があります。あなたが作成することに制限されていないことに注意してください、 'docker run -e MY_VAR busybox env' – BMitch

関連する問題