くりーむわーかー

プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。

2020年08月

Docker imageの名前の部分一致指定で複数一括削除

docker imagesで出てくるimageをrepositryの名前部分一致指定で一括で削除したい場合。

docker rmi -f `docker images "hogename*" -q`

composeとかで、プレフィクス的に名前揃えたテスト用のコンテナ丸ごと消したりするのにたまに使う。けどすぐ忘れる。

AWS EC2でドメイン取得してHTTPSのサーバ作る流れ

何となく、とりあえずやりたい場合の全体的な手順ってあまり見ないので、

とりあえずやるって場合で肝のところ。


構成

だいたいこんな感じ。

sample01

流れ

  • ドメイン取得とDNS(Route 53)
  • インスタンス(EC2)
  • LB作る(証明書も)
  • DNS側にLBのAレコードを作る
  • セキュリティーグループとかの設定

ドメイン取得とDNS(Route 53)

Route53のサービスからドメイン登録選んで色々入力。

個人の管理者なら画像くらいの情報で。ここはちゃんとした情報を入力しないとダメ。

ドメイン名は結構取られてる事が多いと思うので頑張ってひねり出す。

個人的な利用なら.netでいいかなと思いました。

sample00

sample00-1

sample00-2

昔は個別にDNSやらなきゃいけなかったみたいですが、今はここで登録すれば

DNS側も勝手に登録してくれる。↓のところで確認。

sample05

インスタンス直にEIPとか関連付けてそっちにドメインつけたい場合は、ここのDNSに該当インスタンスへのAレコードを登録してあげる。(今回はLB側に付けるのでここまででOK)

インスタンス(EC2)

いったんインスタンス作る。インスタンスは適当に。Webサーバなら何でもいい。

LB作る(証明書も)

sample06

sample07

sample08

※ HTTPSを選んでおかないと、次のステップでその辺の設定が出てこない。

sample09

ACMを選択して、ACMで新しく証明書作るのリンクから証明書作りに行く。

sample10

sample11

sample12

検証中の状態になったら、上記の詳細を開いて、ここからRoute53へCNAMEレコードを追加する。手でやってもいいかもだけど、何か上手くいかなかったのでここからやった方が無難。

登録されたかどうかは、Route53で該当のホストゾーンの中のレコードを見る。CNAMEが追加されてるはず。↓

sample13

証明書の検証自体は、数分~10数分くらいで終わるはず。終わったら下記の発行済み状態になる。

sample14

↑まで終わったら、元のLBの登録の画面に戻って、「証明書の名前」のところに今のモノを入れる。

あとは適当にLBの設定をして作る。

DNS側にLBのAレコードを作る

LB作り終わったら、DNSにLBの情報を入れてあげる。

sample20

sample21

sample22

↑。対象のLBを選択。

セキュリティーグループとかの設定

あと、セキュリティというかACLの設定。

Webサーバ側にLBのセキュリティグループを追加してあげないとダメ。

CentOS7 Docker初期セット

完全にメモ。

sudo yum update -y
sudo yum upgrade -y

# docker
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum install -y docker-ce docker-ce-cli containerd.io

sudo usermod -aG docker $USER
sudo gpasswd -a $USER docker

sudo systemctl start docker
sudo systemctl enable docker

# docker-compose
sudo yum install -y wget
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# あと要らない解凍ファイルとか消す。
# 再起動

https://docs.docker.com/compose/install/

CypressとJestのカバレッジをマージする

以前、Nuxtの単体テストをCypress使ってやる奴を書きましたが、実際にやってみてこれはこれでつらかった。

やっぱりメソッドとか簡単な部分はJestというかVue-test-util使ってちょこちょこっと書けた方が良い。

でもやっぱりあれこれやり始めるとVue-test-utilだとつらい・・・。

じゃー、使い分ければいいじゃんと。

で、そういう時に問題になるのが、カバレッジのマージ。

nycはいちをそれも出来るんだけど、マージの仕方が何か微妙な気がするのですが・・・。

どっちかにあるものの、MAXで見るか、平均で見るかって感じ?

単純に通ったコードのカウント部分マージしてくれればいいんだけどなー。

何でこういう感じになってるんだろ?何かやり方が間違ってるのかしら?

公式にも載ってるサンプルのリポジトリと同じやり方してみても、上手くいかない。

というか、ぶっちゃけ現状バグってますよね?istanble-lib-coverageがおかしいのかしら?色々やってみると大体結局↓のエラーが出る。

TypeError: Cannot read property 'start' of undefined

多分これ、coverage.jsonのファイルって下の感じの定義じゃないですか。

statementMap:{
 "0":{
     start:1,end:1
  },
 "1":{
     start:2,end:2
  }
},
s:{"0":3, "1", 4}

で、sのオブジェクトがstatementMapの定義してる行数を通った回数になってると思うのですが、

マージすると、statementMap側に存在しないキーがs側に出来る場合があるっぽ。

ダメじゃん。

同一ソースなら一緒になるはずなのですが、

jestとcypressで微妙に定義の仕方が違うん場合があるんですよね。行数は一緒なんですけど。


なので、cypressとjestの組み合わせ限定ですが、coverage.jsonをマージするスクリプトを作った。

別に大した事はやってないのですが、だいぶ面倒くさいところなので、何かに使えれば参考にどうぞ。

下記にあげました。

https://github.com/n79s/cy-jest-coverage-merge

問合せ