いつかDockerやらなきゃな~と思っていたのですが、先日ようやくこちらでDocker童貞を卒業しました。
https://training.play-with-docker.com/beginner-linux/
ブラウザだけで使えるのでまだDTの方はぜひご利用ください。
で、Dockerを "完全に理解した" 私はさっそくコンテナの中でGitlabからcloneしようとしたのですが、なかなかハマってしまいました。。
ひたすらググり続けてなんとか完成しましたがすごく辛かったです。
まあごちゃごちゃ言ってないではよ完成したDockerfile見せれやって感じだと思うので、以下の通りです。
前提
・ssh公開鍵をGitlabに登録してあること
・ssh秘密鍵(id_rsa)を/root/.ssh/id_rsaに置いていること
・GitlabのUser名:hoge
・プロジェクト名:foo
・コンテナのタグ:piyo
・port:3000
FROM node:8.11.3
ENV HOST 0.0.0.0
EXPOSE 3000
RUN mkdir /root/.ssh && \
touch /root/.ssh/config && \
chmod 600 /root/.ssh/config && \
echo " Host gitlab.com" >> /root/.ssh/config && \
echo " User hoge" >> /root/.ssh/config && \
echo " IdentityFile /root/.ssh/id_rsa" >> /root/.ssh/config && \
ssh-keyscan -H gitlab.com >> /root/.ssh/known_hosts && \
ssh-keyscan -H 35.231.145.151 >> /root/.ssh/known_hosts
CMD chmod 600 /root/.ssh/id_rsa && \
git clone git@gitlab.com:hoge/foo.git && \
cd foo && \
npm install && \
npm run dev
・DockerfileからImage作成
docker build ./ -t piyo
・Imageからコンテナ実行
docker run --rm -p 3000:3000 -v /root/.ssh/id_rsa:/root/.ssh/id_rsa -it piyo
これでlocalhost:3000
で起動されます。
そもそもいつもhttpsでcloneしてたのでssh鍵を生成するところから頑張りました。
よ~しこの調子でDocker達人になるぞー!
ではでは。