LoginSignup
3

More than 5 years have passed since last update.

DockerでGitlabのプライベートリポジトリをsshでcloneする方法

Last updated at Posted at 2018-11-23

いつか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達人になるぞー!

ではでは。

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
3