導入
Dockerfile は、イメージの作り方を上から順に書いたテキストファイルです。「どのベースイメージから始めて」「何をコピーして」「どのコマンドで動かすか」を1行ずつ命令(インストラクション)として書いていきます。
説明
この端末の作業ディレクトリには、すでにサンプルの Dockerfile が置いてあります。cat Dockerfile で中身を見てみましょう。よく使う命令は次のとおりです。
FROM:土台にするベースイメージ。すべての Dockerfile はここから始まる。WORKDIR:以降の作業ディレクトリ(コンテナ内の作業場所)を指定する。COPY:ホストのファイルをイメージの中にコピーする。RUN:ビルド時にコマンドを実行する(例:npm installで依存をインストール)。EXPOSE:このイメージが使うポートを宣言する(ドキュメント的な意味合い)。CMD:コンテナ起動時に実行する既定のコマンド。
FROM node:20-alpine
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
上から順に「node:20-alpine を土台に、/app で作業し、package.json をコピーして npm install し、残りのファイルもコピーして、3000番を使う、起動したら node server.js を動かす」という設計図です。
やってみよう
- 下の端末で
cat Dockerfileを実行し、サンプルの設計図を読んでみましょう。 lsで、Dockerfileのほかにserver.jsやpackage.jsonがあることも確認しましょう。