Dockerfile は、Docker イメージを構築するための設計図です。
そのイメージを元にして、Docker コンテナが作られます。
中には、OSの指定やアプリのインストール、設定、起動コマンドなどが記述されます。
ベースとなるイメージを指定します。Dockerfile の最初に必須。
例:
FROM node:18
作業ディレクトリを指定します。以降の命令の実行場所になります。
例:
WORKDIR /app
ホスト側のファイル/ディレクトリを、コンテナ内にコピーします。
例:
COPY . .
コンテナ内でコマンドを実行します(ビルド時に実行)。
例:
RUN npm install
コンテナ起動時に実行するデフォルトコマンドを指定します。
例:
CMD ["node", "index.js"]
コンテナが使用するポートを指定します(実際に開放されるわけではない)。
例:
EXPOSE 3000
環境変数を設定します。
例:
ENV NODE_ENV=production
ビルド時に使える変数(環境変数ではない)を指定します。
例:
ARG VERSION=1.0.0
CMDと似ていますが、常に実行されるコマンドです。CMDと組み合わせることができます。
例:
ENTRYPOINT ["npm", "run"] CMD ["start"]
※ カレントディレクトリに、package.jsonが必要です
# ベースイメージの指定 FROM node:18 # 作業ディレクトリを作成・指定 WORKDIR /app # ファイルをコピー COPY package*.json ./ # 依存パッケージをインストール RUN npm install # ソースコードをコピー COPY . . # アプリが使うポートを指定 EXPOSE 3000 # アプリを起動 CMD ["node", "index.js"]
docker build -t my-node-app .
docker run -p 3000:3000 my-node-app