rain の dockerイメージを作ります。
Dokerfileは以下のとおり。
User, Group は、rain を使用するユーザに合わせています。
FROM amazon/aws-cli:latest ARG RAIN_VER=1.2.0 ARG UID=1000 ARG GID=1000 ARG GNM=ubuntu ARG UNM=ubuntu ADD https://github.com/aws-cloudformation/rain/releases/download/v${RAIN_VER}/rain-v${RAIN_VER}_linux-amd64.zip /tmp/rain.zip # Install Rain RUN yum install unzip -y \ && unzip -j /tmp/rain.zip */rain -d /usr/local/bin/ \ && chmod 755 /usr/local/bin/rain \ && rm /tmp/rain.zip # user RUN echo "${GNM}:x:${GID}:${UID}" >> /etc/group RUN echo "${UNM}:x:${UID}:${GID}::/home/ubuntu:/sbin/nologin" >> /etc/passwd ENTRYPOINT ["/usr/local/bin/rain"]
ビルドします。
$ docker build . -t aws-rain
ビルドしたDockerイメージを確認します。
$ id uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev),1001(docker) $ docker run --rm --entrypoint bash aws-rain -c "id ubuntu" uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu) $ docker run --rm aws-rain --version Rain v1.2.0 linux/amd64
Dockerイメージを実行するスクリプトを用意します。
今回は、/usr/local/bin/rain にします。
内容は以下のとおり。
$ cat /usr/local/bin/rain #!/bin/bash docker run -it --rm -v $HOME:$HOME -u ubuntu -w $PWD aws-rain $*
実行権限をつけます。
$ chmod +x /usr/local/bin/rain
rainの動作確認をします。
$ rain ls --profile sandbox CloudFormation stacks in us-east-1: Blue21VpcPoC: CREATE_COMPLETE
docker イメージにはホームディレクトリをマウントしているので、CFNテンプレートをホームディレクトリに置いて、rainを使うようにします。
また、上記の例だと、PC側のubuntuユーザにaws-cli の設定(~/.aws)が必要です。