Makefileを使用してビルドと公開
![](https://s1.md5.ltd/image/a94b59053d3351d536768bc5547e711d.png)
makeとdockerfileの中にはもっとたくさんのことがあります.
あなたのドキュメンテーションで説明されるより.
イントロ
まず第一に、Dockerがコンテナの同義語であるにもかかわらず、他の方法が真実でないと認めることによって、この簡潔な思考の列車を始めましょう.
私たちはコンテナの起源に耐えることができました、しかし、私がここで説明しようとすることができた何よりもはるかにより有効な記事のトンがそこにあります.
私はコンテナ、DockerとDockerFilesがこれを読んでいる誰のための新しい条件でもないと仮定します、しかし、それがそうであるならば、あなたはおそらくチェックすることから始めることができますcontainers , docker と[ dockerfile ]( https://docs.docker.com/engine/reference/builder/ )
動機
通常、私がDockfileを書いているとき、私はこれを成功させるために必要なステップを決して忘れないことを確実にするために、または、そのコンテナーを決して忘れないでしょう.
今では、いくつかの良い言葉を使用して、この男は本当にどのようにDockerのビルドの引数を使用して動作するようにする必要があります私の時間を無駄に停止することを考えている必要がありますが、それは常にすべての引数を暗記することを否定することはありません.
Dockerfile
最初のステップ:Kubectlに会ってください
Kubectlが何をしているのか、このポストの範囲外です.それは私の心に飛び込んだ最初のものだったので、我々は例としてそれを使用している.
Kubectl用の小さな容器を作りましょう.
FROM alpine:3.12
ADD https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl /usr/local/bin/kubectl
RUN chmod +x /usr/local/bin/kubectl
ENTRYPOINT ["kubectl"]
ご覧のように、小さなdockerfileでは、2つのハードコード化されたバージョンだけが目に飛び込みます.第二段階:いくつかの調整
Luckily Dockerfile構文(年を通して進化しているかどうかでない)は、いくつかの良い修正をするのを許します:
ARG ALP_VER=3.12
FROM alpine:$ALP_VER
ARG KCTL_VER=1.18.0
ADD https://storage.googleapis.com/kubernetes-release/release/v${KCTL_VER}/bin/linux/amd64/kubectl /usr/local/bin/kubectl
RUN chmod +x /usr/local/bin/kubectl
ENTRYPOINT ["kubectl"]
それで、私がどんな引数を渡すこともなくイメージを構築することができるので、私はそれを私が喜ばせるようにそれらの2つのバージョンを修正することができるだけでなく、(デフォルトバージョンでそれを構築するでしょう).もちろん、dockerfileで動作するDockerビルドコマンドを実行して問題を起こすことができます
docker build --build-arg ALP_VER=3.11 --build-arg KCTL_VER=1.18.0 -t my_kubectl:1.18.0 .
.しかし、それはちょうど私のために十分でありませんでした.それは難しいことではありませんが、いくつかのdockerfileの引数名を覚えておかなければなりません.
Makefile
私は、より単純な構文を解決するだけであると決めました.
これらの長いコマンドを入力しなかった何かだけでなく、同時に、単純な(そして醜い)bashスクリプトより少し良い何か.
< div >
私は今どんなバージョンでもビルドすることができます.
<ウル>
make build
make build alpver=3.11
make build kctlver=1.17.0
make build alpver=3.11 kctlver=1.17.0
< p >私はビルドし、設定されたレジストリにプッシュします
<ウル>
make
make alpver=3.11
または私は簡単に(私は変更することができます任意のファイルを開くこと)をチェックすることができます私はイメージ
<ウル>
make help
< tt >リポジトリ名のようにどこかにハードコード化されたものがありますが、p >
もちろん、これは方法だけではありません.私はそんなにナイーブではない.他にも多くのオプションがありますので、コメントエリアで知りたいです.p >
Reference
この問題について(Makefileを使用してビルドと公開), 我々は、より多くの情報をここで見つけました https://dev.to/flpslv/using-makefiles-to-build-and-publish-docker-containers-7c8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol