yosaku_ibs
@yosaku_ibs

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

dockerチュートリアルに存在する矛盾について

解決したいこと

dockerチュートリアルである矛盾を発見しました。この矛盾について解説頂きたく思います。

問題点

【9部の「レイヤーのキャッシュ処理」内に記載されているDockerfileのソース】は【2部の「アプリのコンテナーイメージのビルド」内で記載されているDockerfileのソース】よりも2行分コードが少ないです。

これは一体なぜなのでしょうか?

ソースコード

9部:「レイヤーのキャッシュ処理」のDockerfile
>https://matsuand.github.io/docs.docker.jp.onthefly/get-started/09_image_best/#:~:text=%E3%83%AC%E3%82%A4%E3%83%A4%E3%83%BC%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5,node%22%2C%20%22src/index.js%22%5D

# syntax=docker/dockerfile:1
FROM node:12-alpine
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]

2部:「アプリのコンテナーイメージのビルド」のDockerfile

>https://matsuand.github.io/docs.docker.jp.onthefly/get-started/02_our_app/#:~:text=%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%83%BC,js%22%5D%0AEXPOSE%203000

# syntax=docker/dockerfile:1
FROM node:12-alpine
RUN apk add --no-cache python2 g++ make  # 9部には存在しない行
WORKDIR /app
COPY . .
RUN yarn install --production
CMD ["node", "src/index.js"]
EXPOSE 3000      # 9部には存在しない行


自分で試したこと

同チュートリアルの2部から9部を数回見直しましたが、理解できません。。

以上、お手数ではございますが
もしご存知の方がいらっしゃいましたら
ご教示の程よろしくお願い申し上げます。

0

1Answer

後から2部のコードに2行追加したが、9部のコードを変更し忘れたということでしょう。翻訳元のドキュメントにも2部にだけ行を追加した記録が残っています https://github.com/docker/docker.github.io/commit/1b9c94b16658436cced8a52da667104356775730

RUN apk add --no-cache python2 g++ make はコンテナ内で Node.js のモジュールをビルドするのに必要なライブラリをインストールする命令で、 EXPOSE 3000 はコンテナ内で立てたサーバの3000番ポートにホスト側からアクセスできるようにするが使われることを Docker に伝える命令です。どちらもここで使われているサンプルアプリケーションに必要そうです。

2Like

Comments

  1. @yosaku_ibs

    Questioner

    @uasi様

    いつもお世話になっております。
    ご回答下さり誠にありがとうございます。
    github上でチュートリアルの校正記録(?)が確認できるとは驚きました。。

    ご教示頂いた内容を参考にチュートリアルを進めていきます。

    いつもありがとうございます。
    以上、御礼申し上げます。

Your answer might help someone💌