準備ができたらスクリプトを実行するようにドッカーファイルを設定しようとしています。ドッカーでポートを待ち受けるには?
基本的に、私のマイクロサービスは、別のサービスが開始されるまで待つことを希望します。私は本の中でチュートリアルを次のですので、私はこのdockerfile持っている:
FROM openjdk:8-jdk-alpine
RUN apk update && apk upgrade && apk add netcat-openbsd
ARG JAR_FILE
ADD target/${JAR_FILE} /usr/share/theexplorer/theexplorer.jar
ADD run.sh run.sh
RUN chmod +x run.sh
CMD ./run.sh
EXPOSE 8761
をそして、私はこのスクリプト(run.sh)を持っている:
echo "********************************************************"
echo "Waiting for the configuration server to start on port $CONFIGSERVER_PORT"
echo "********************************************************"
while ! `nc -z configserver $CONFIGSERVER_PORT `; do sleep 3; done
echo ">>>>>>>>>>>> Configuration Server has started"
java -jar /usr/share/theexplorer/theexplorer.jar
をしかし$ CONFIGSERVER_PORTの値はnullです。 run.shを呼び出している間にパラメータを渡さなかったので、この変数をどのように利用できるはずがありません。したがって、$ CONFIGSERVER_PORTはどのように設定する必要がありますか?私のサービスが依存しているサービスのポートを知るためのスマートな方法はありますか?
ご協力いただきましてありがとうございます。
実行コマンドの変数を 'docker run -e CONFIGSERVER_PORT = myservice' –
Munchkin
のように渡します。設定サーバーは別のコンテナで実行されているか、ホスト上で直接実行されていますか?それとも同じコンテナで開始されていますか? – yamenk
設定サーバーは私のマシンの別のコンテナにあります –