githubのprivateなリポジトリをdepで管理してみる Gopkgファイルの生成など、コマンドは全てdocker上で行っていく
環境
- docker: 18.03.1-ce
- docker-compose: 1.21.1
gitの設定
privateなリポジトリからインストールできるようにする
sshキーの作成
Dockerfile
./ssh
mkdir ssh
cd ssh
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): ./id_rsa
ls
id_rsa id_rsa.pub
githubページに登録
目的のprivateリポジトリにアクセスできるアカウントにて、
作成した
id_rsa.pub
New SSH key
https://github.com/settings/keys
Dockerfile作成
Dockerfileと同じ階層
./src
.go
Dockerfile
FROM golang:1.9-alpine
WORKDIR /go/src/app/src
# required to `go get` from private github repo
RUN apk update && apk upgrade && \
apk add --no-cache git openssh
COPY ./ssh/id_rsa /root/.ssh/id_rsa
RUN chmod 700 /root/.ssh/id_rsa
RUN echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config
COPY ./src /go/src/app/src
# using dep
RUN go get -u -v github.com/golang/dep/cmd/dep
RUN dep init \
&& dep ensure -v \
&& apk del git openssh
試す
docker-compose.yml
version: '3.3'
services:
api:
build:
context: .
dockerfile: Dockerfile
確認
docker-compose build
docker-compose run api /bin/sh
以下のコマンドはコンテナ内で実行している
ls -l
total 120
-rw-r--r-- 1 root root 5647 May 15 03:49 Gopkg.lock
-rw-r--r-- 1 root root 1503 May 15 03:49 Gopkg.toml
drwxr-xr-x 5 root root 4096 May 15 03:49 vendor
...
dep status
PROJECT CONSTRAINT VERSION REVISION LATEST PKGS USED
github.com/xxx/xxxx ^1.0.0 v1.0.0 xxxxxxx unknown 29
github.com/xxx/xxxx ^1.0.0 v1.0.0 xxxxxxx unknown 2
各種ファイルが生成されていること、private含む、各種パッケージがインストールされていることが確認できるはず