Pod内のNginxにサクッとリソースをコピーしたいなと思って調べていたところ、
Kubernetesでは"kubectl cp"を使うとのこと。まあDockerと同じですね。
ということで、ワンライナーで書いてみた。
やりたいこと
手元で書いたコードをKubernetes上ですぐに動作確認したい
↓ 要するに
ビルドしたリソースをNginxのルートディレクトリ(/usr/share/nginx/html)配下にコピーしたい
.
├── dist // ここの配下を持っていきたい
│ ├── index.html
│ ├── bundle.js
│ └── css
│ └── style.css
├── src
│ ├── index.html
│ ├── scripts
│ │ ├── index.js
│ │ └── hello.js
│ └── styles
│ └── style.css
├── package.json
└── webpack.config.js
やったこと
必要な情報をエクスポートしておく
export POD_NAME=nginx-xxxxxxxxxxxx # コピー先のPOD名
export ROOT_DIRECTORY=/usr/share/nginx/html # コピー先のディレクトリ (今回はNginxのルートディレクトリを指定)
圧縮して、コピーして展開して、不要ファイルを削除
※ --
のつけ忘れに注意。これがないとうまく動かない。
$ tar -zcvf dist.gz -C dist . && \
kubectl cp dist.gz ${POD_NAME}:${ROOT_DIRECTORY}/ && \
kubectl exec ${POD_NAME} -- tar -zxvf ${ROOT_DIRECTORY}/dist.gz -C ${ROOT_DIRECTORY}/ && \
kubectl exec ${POD_NAME} -- rm -f ${ROOT_DIRECTORY}/dist.gz
簡単だね。
Nginxコンテナ内
$ pwd
/usr/share/nginx/html
$ find .
.
./index.html
./bundle.js
./css
./css/style.css
あとがき
今は、フロントエンドを書くことが多いので、動作確認は基本的にこれで事足りてます。
もっと楽だよって方法があれば教えてくださいヽ(´ー`)ノ