Dockerコンテナ内でプログラムを実行するには?

Dockerコンテナ内でプログラムを実行するには?

私はというアプリケーションを実行しています。ERDAP使用このドッカーコンテナ次のように実行します。

docker stop erddap
docker rm erddap
docker run -p 8090:8080 -p 8543:8443 -d -v /usr/local/erddap/tomcat-users.xml:/opt/tomcat/conf/tomcat-users.xml -v /usr/local/erddap:/opt/tomcat/content/erddap -v /usr/local/erddapData:/erddapData --name erddap axiom/docker-erddap

アプリケーションは、 datasets.xml次の名前のコンテナー内でアプリケーションが生成する必要があるファイルを読み取ります。GenerateDatasetsXmlhttp://coastwatch.pfeg.noaa.gov/erddap/download/setupDatasetsXml.html#GenerateDatasetsXml

それでは、Dockerコンテナ内でこのプログラムを実行してdatasets.xmlファイルを生成するにはどうすればよいですか?

答え1

Dockerコンテナ内でシェルコマンドを実行するには、次の手順を実行します。

$ docker exec -it erddap bash

これは/opt/tomcatのDockerコンテナに移動します。コマンドプロンプトは次のとおりです。

root@d2adcc7db35a:/opt/tomcat# 

まず、erddapDataフォルダが/erddapDataにあることを確認してから、次の手順を実行します。

cd /opt/tomcat/webapps/erddap/WEB-INF/
bash GenerateDatasetsXml.sh 

これで generateDatasetsXml スクリプトが起動します。すべての質問に答えたら、次のようにコンテナを離れることができます。

exit

このスクリプトの出力はローカルのerddapDataディレクトリにあります。

$ cd /usr/local/erddapData/logs/
$ cat GenerateDatasetsXml.out

/usr/local/erddap/に保存する必要があるDatasets.xml文書から、必要な場所に出力をコピーできます。

関連情報