Dockerfile

アプリケーションホスティングでは、Dockerfileを使用してコンテナイメージをセットアップすることができます。Dockerfileを使用することで、細かなコントロールが可能になり、同時にほぼ全ての言語を使用することができます。そのため、NixpacksBuildpacksがサポートする言語に制限されることはありません。

Dockerfile使用時には、その内部にある記述に応じて環境が構築されます。これには言語、付属ソフトウェア、ライブラリのインストール、ポートの設定、ウェブサーバーの起動などのコマンドが必要になります。PORT環境変数は、弊社システムにて自動設定されます。これを定義したり、アプリケーションでハードコーディングにより記述したりする必要はありません。例えば、Node.jsでサーバーポートを参照するには、コード内でprocess.env.PORTを使用してください。

Dockerfileの作成方法に関する詳しい情報は、Dockerの公式ドキュメントをご覧ください。

Dockerfileの設定

Dockerfileを使用するには、アプリケーションを追加する際に「Dockerfileを使用してコンテナイメージを設定」を選択します。

Dockerfileのパス」は、リポジトリルートからの相対的なDockerfileへのパスです。例えば、Dockerfileがリポジトリルートにある場合、このフィールドに「Dockerfile」と入力します。Dockerfileがappという名前のサブディレクトリにある場合は、Dockerfileへのパスとして「app/Dockerfile」と入力します。

コンテキスト」は、アプリケーションをビルドするためにアクセスする必要があるリポジトリ内のパスとなります。ほとんどのアプリケーションはリポジトリルートからビルドされるので、「コンテキスト」フィールドにリポジトリルート(.)を入力します。アプリケーションをサブディレクトリ(例:app)からビルドするには、そのサブディレクトリのパスとして「app」を「コンテキスト」フィールドに入力します。

アプリケーション追加の残りのフィールドに情報を入力し「アプリケーションを追加」をクリックします。

Dockerfileを選択しアプリケーションを追加する
Dockerfileを選択しアプリケーションを追加する

Dockerfileの例

Dockerfileの例はこちらです。参考としてご活用ください。

FROM node:carbon

LABEL maintainer="Kinsta devs"

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in package.json
RUN npm install

# Run app when the container launches
CMD ["npm", "start"]

Dockerfileを使用してデータベースをホストする

永続ストレージとDockerfileを組み合わせれば、アプリケーションホスティングでほぼすべてのデータベースを運用することができます。データベースホスティングではサポートされていないMicrosoft SQL Serverデータベースもデプロイ可能です。Dockerfileでコンテナ化できるものは、アプリケーションホスティングでデプロイできます。

データベースのデータを保持するには、永続ストレージが必要です。永続ストレージなしでアプリケーションホスティングにデータベースをデプロイする場合、アプリケーションが再起動されたり再デプロイされたりすると、すべてのデータが失われます。

データベース用のDockerイメージの多くは、Docker Hubで入手可能です。「Docker Official Image」(Dockerの公式イメージ)のバッジが付いているものを探し、ベストプラクティスに準拠した安全で文書化されたイメージを選択してください。

この記事は役に立ちましたか?