AWSの設定
まずS3のバケットを作成して、以下のポリシーを設定したユーザーを作成します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": "arn:aws:s3:::registry-bucket-name"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::registry-bucket-name/*"
}
]
}
ローカルの設定
これでAWS側の設定が完了したので、ローカル側での設定をします。
docker pull registry:latest
まずRegistoryをpullして、config.ymlに以下の設定をします。
version: 0.1
log:
fields:
service: registry
storage:
s3:
accesskey: AKXXXXXXXXXXXXXXXXXXX
secretkey: xxxxxxxxxxxxxxxxxxxxxxxx
region: ap-northeast-1
bucket: registry-bucket-name
secure: true
v4auth: true
chunksize: 5242880
multipartcopychunksize: 33554432
multipartcopymaxconcurrency: 100
multipartcopythresholdsize: 33554432
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
設定ファイルを指定してdocker run
します。
docker run -d -p 5000:5000 --restart=always -v `pwd`/config.yml:/etc/docker/registry/config.yml registry:latest
push
localhost:5000
を指定してpushします。
docker push localhost:5000/userid/appname