2017/04/19

手動編譯 php *.so 檔


由於在同一環境中有不同版本的 php 同時運作

所以舊版 php 的 shared object 套件無法使用 pecl/pear 安裝

那就自己 build 吧

2016/09/26

docker nginx reload



根據[官方blog](https://blog.docker.com/2015/04/tips-for-deploying-nginx-official-image-with-docker/)

當 nginx 設定檔更動時, 你不能直接執行 nginx reload, 但幸好 nginx 支援特定 signal 去做 reload

/etc/init.d/nginx reload
```sh
sudo docker kill -s HUP
```


/etc/init.d/nginx restart
```sh
sudo docker restart
```

2016/08/22

將虛擬機器映像檔 匯入AWS EC2



由於必須必須把映像檔上傳至 S3 上才能建立 EC2 的 AMI

所以我們先在S3上建立一個 bucket

```sh
aws s3api create-bucket --bucket vm-image
```

將映像檔上傳至 S3
```sh
aws s3 cp ~/ubuntu.ova s3://vm-image/
```

建立一個名為 vmimport 的 role

```sh
aws iam create-role --role-name vmimport
```

condition 要改為

"sts:Externalid":"vmimport"


開始匯入囉
```sh
aws ec2 import-image --cli-input-json "{ \"Description\": \"Ubuntu\", \"Format\": \"ova\", \"UserBucket\": { \"S3Bucket\": \"vm-image\", \"S3Key\": \"Ubuntu.ova\" } }"
```

之後就是等等等, 當然可以查進度
```sh
aws ec2 describe-import-image-tasks --import-task-ids import-ami-xxxxxxxxxx
```

完成後就會在你的EC2的AMIs看到image囉


Reference:
* http://docs.aws.amazon.com/vm-import/latest/userguide/import-vm-image.html#import-vm
* http://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html

2016/07/18

docker 解決 container mount檔案



目前在操作 docker 上會遇到一個問題:
mount 某個檔案或某的目錄到 container 上後修改 host 上的擋案後 container 對應的擋案不會跟著變動

docker container 預設加入 host 至 /etc/hosts




從 docker v1.3.1 起
docker支援了 --add-host 的參數可以再啟動時加入私有主機別名設定 (/etc/hosts)
可參考 https://docs.docker.com/v1.8/reference/run/#network-settings

我們只要再docker啟動時加入 --add-host $NAME:$IP
例如:

docker run -itd --restart=always --name lol_backend -p 80:80 -p $22:22 --add-host db:10.10.10.1 lol_backend


有多筆就加多個囉

docker run -itd --restart=always --name lol_backend -p 80:80 -p $22:22 --add-host db:10.10.10.1 --add-host db2:10.10.10.2 lol_backend