スタンドアロン・アプリケーションの作成
アプリケーションを開発した後は、依存ライブラリをどのように組み込むか参照するかを決定する必要があります。 各言語の詳細を参照してください。
Javaソース
Javaアプリケーションがライブラリ・クラスに依存しない場合は、JARファイルを作成できます。 デフォルトでは、JARファイルにはソース・ファイルから生成されたクラス・ファイルのみが含まれます。
Javaアプリケーションがライブラリ・クラスに依存する場合は、パッケージをデプロイするときにそれらを組み込む必要があります。 これは、次の2つのいずれかの方法で可能です。
-
uber JARを作成する。 アプリケーションを作成するときは、JARファイル内のすべての依存ライブラリをアプリケーションとともに含めます。 Mavenを使用している場合は、Mavenビルド・ツールとアセンブリまたはシェード・プラグインを使用して、必要なライブラリをJARファイルにコピーできます。 このチュートリアルでは、アセンブリ・プラグインを使用してuber JARファイルを作成する方法について説明:
Grizzly、Jersey、およびMavenを使用した基本的なREST Webサービスの作成。
-
クラスパスを使用する。 すべての依存ライブラリはそれぞれ別個のJARファイルに組み込まれますが、コマンドラインの
-classpathオプションにそれら各ファイルへのパスを含めます。 多くのライブラリをアプリケーションに組み込むと、クラスパスが長くなることがあります。 その場合、コマンドラインをBashシェル・スクリプトに入れて実行することができます。 Mavenを使用している場合は、appassemblerプラグインを使用してBashスクリプトを記述することができます。
Java EE
Webアプリケーションには、WebLogic Serverに含まれていないすべての依存クラスが含まれている必要があります。 アプリケーションをデプロイするには、単一の.warファイルまたは.zip, .tar,または.tar.gzファイルのいずれかを作成し、オプションのmanifest.jsonファイルと単一の.warファイルをルートに作成します。
ノード
アプリケーションでサードパーティのライブラリを使用していない場合や、NPMの依存関係がない場合は、プロジェクト・ファイルとコードとmanifest.jsonファイルを圧縮できます。 アプリケーションに依存関係がある場合は、アプリケーションとその依存関係を.zip, .tar,または.tar.gzファイルにバンドルする必要があります。 ライブラリをローカル・ディレクトリ(node_module)にインストールし、コード、manifest.json,、package.jsonファイル、およびnode_moduleディレクトリを圧縮する必要があります。
PHP
コード、manifest.json,スクリプト・ファイル、および依存関係(存在する場合)を含む.zip, .tar,または.tar.gzファイルでプロジェクトを圧縮します。
Python
アプリケーションがサードパーティのライブラリに依存していない場合は、.py, manifest.json,とスクリプト・ファイルを含む.zip, .tar,または.tar.gzファイルでプロジェクトを圧縮します。 アプリケーションでサードパーティのライブラリを使用する場合は、ライブラリをローカル・ディレクトリにインストールしてから、プロジェクト・ファイルをmanifest.jsonファイル、スクリプト・ファイル、および依存関係のあるディレクトリとともに圧縮する必要があります。
例3-1 Pythonアプリケーション用のサンプルstart.shスクリプト
#!/bin/sh
export PYTHONPATH=modules
python app.py Ruby
アプリケーションがサードパーティのライブラリに依存していない場合は、.rb, manifest.json,とスクリプト・ファイルを含む.zip, .tar,または.tar.gzファイルに圧縮する必要があります。 アプリケーションに依存関係がある場合は、Gemfileファイルでそれらを指定し、Gemfileファイルで指定された依存関係をインストールするスクリプトを作成する必要があります。
その後、プロジェクト(.rbとスクリプト・ファイル、および依存ディレクトリ)とmanifest.jsonファイルを圧縮することができます。
例3-2 Rubyアプリケーション用のstart.shスクリプトのサンプル
#Install the dependencies specified in the Gemfile
bundle install
#Run the database migration to create the Employee table.
bundle exec rake db:migrate
#Run the Sinatra application. Your application must run on the port specified in the PORT environment variable and in the 0.0.0.0 host.
rackup -p ${PORT} --host 0.0.0.0実行
アプリケーションに依存関係がある場合は、それらをスクリプト・ファイルで指定し、アプリケーションをデプロイするときにOracle Application Container Cloud Serviceがそれらを管理する必要があります。
コードを含む.zip, .tar,または.tar.gzファイル、manifest.jsonファイルおよびスクリプト・ファイルでプロジェクトを圧縮します。
例3-3 Goアプリケーションのサンプルstart.shスクリプト
# Extract LIBAOI libs from Debian package (into ./lib/x86_64-linux-gnu)
dpkg-deb -R libaio1_0.3.110-1_amd64.deb ${APP_HOME}
export PKG_CONFIG_PATH=${APP_HOME}/Oracle/instantclient_12_2
# Add OCI and LIBAIO to shared library path
export LD_LIBRARY_PATH=${APP_HOME}/Oracle/instantclient_12_2:${APP_HOME}/lib/x86_64-linux-gnu
# Finalize OCI installation by creating required softlink
ln -s -f ${APP_HOME}/Oracle/instantclient_12_2/libclntsh.so.12.1 ${APP_HOME}/Oracle/instantclient_12_2/libclntsh.so
ln -s -f ${APP_HOME}/Oracle/instantclient_12_2/libocci.so.12.1 ${APP_HOME}/Oracle/instantclient_12_2/libocci.so
# Install Go dependencies
go get github.com/mattn/go-oci8
go get github.com/ant0ine/go-json-rest/rest
# Launch the application
go run oracle-db.go.Net
スタンドアロン・アプリケーションを作成するには、プロジェクトの依存関係やツールを更新する必要があります:
dotnet restoreアプリケーションのデバッグ・ビルドを作成します:
dotnet build Linuxプラットフォーム用の自己完結型デプロイメントを作成する:
dotnet publish -c Release -r linux-x64コードを含む.zip, .tar,ファイルまたは.tar.gzファイル、manifest.jsonファイル、およびpublishディレクトリでプロジェクトを圧縮します。