8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

kubectlでPod内のNginxにワンライナーデプロイ

Last updated at Posted at 2018-02-14

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

あとがき

今は、フロントエンドを書くことが多いので、動作確認は基本的にこれで事足りてます。
もっと楽だよって方法があれば教えてくださいヽ(´ー`)ノ

参考情報

8
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?