62 lines
2.0 KiB
Markdown
62 lines
2.0 KiB
Markdown
|
+++
|
||
|
date = "2016-12-29"
|
||
|
tags = ["memo"]
|
||
|
title = "docker-blog"
|
||
|
slug = "docker-blog"
|
||
|
+++
|
||
|
|
||
|
こんな感じで構築してるけど、アンチパターンぽい。
|
||
|
|
||
|
```bash
|
||
|
FROM archlinuxjp/archlinux:start
|
||
|
|
||
|
RUN mkdir -p /root/.ssh
|
||
|
RUN mkdir -p /root/bin
|
||
|
ADD .zshrc /root
|
||
|
ADD bin/script /root/bin
|
||
|
ADD .ssh/config /root/.ssh
|
||
|
ADD .ssh/id_rsa /root/.ssh
|
||
|
RUN chmod 700 /root/.ssh/id_rsa
|
||
|
RUN /bin/cp -f /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
|
||
|
|
||
|
RUN pacman -Syu --noconfirm
|
||
|
RUN pacman -Scc --noconfirm
|
||
|
RUN pacman -S base-devel git zsh openssh --noconfirm
|
||
|
RUN pacman -S curl nodejs npm which --noconfirm
|
||
|
|
||
|
RUN npm i gulp -g
|
||
|
|
||
|
CMD /bin/zsh
|
||
|
|
||
|
RUN git config --global user.email "$USER@users.noreply.github.com"
|
||
|
RUN git config --global user.name "$USER"
|
||
|
|
||
|
ENV PATH $PATH:/root/bin
|
||
|
|
||
|
RUN git clone $HOST/$USER/$REPO.git
|
||
|
RUN which script
|
||
|
```
|
||
|
|
||
|
`.ssh/config`はこんな感じで。
|
||
|
|
||
|
```bash
|
||
|
Host gitlab.com
|
||
|
RSAAuthentication yes
|
||
|
IdentityFile ~/.ssh/id_rsa
|
||
|
User syui
|
||
|
TCPKeepAlive yes
|
||
|
identitiesonly yes
|
||
|
StrictHostKeyChecking no
|
||
|
```
|
||
|
|
||
|
特に、SSH Keyが良くなくて、本来なら`ENV GITHUB_TOKEN XXXXXXX`としてから`git clone,push ${GITHUB_TOKEN}@github.com/$USER/$REPO`などとすべきなんだけど、GitLabのACCESS_TOKENの使い方がよくわからんということで。
|
||
|
|
||
|
なぜダメなのかというと、一つはDocker Hubでプライベートにしててもアクセスがコントロールできてなくて危険だから。
|
||
|
|
||
|
SSHとACCESS TOKENでの違いはアクセス制限というか、そういったコントロールが可能で、ACCESS TOKENでのアクセスのほうがより安全。
|
||
|
|
||
|
ただ、Docker HubにAccess Tokenを置くこと自体危険だとも言えるのだけど、正直、このような全部の処理を外部サービスに任せる開発フローではどうしても危険性が増えてしまう気がする。
|
||
|
|
||
|
個人的にはDocker Hubには二段階認証及び、Access Tokenの発行ができるようになればより安心して使える気がする。
|
||
|
|