diff --git a/README.md b/README.md index edd4cfd..85f6dc4 100644 --- a/README.md +++ b/README.md @@ -106,19 +106,27 @@ envs description 0~15 because redis defaults to 16 databases, use `REDIS_DATABASES` env , eg. `--env REDIS_DATABASES=32`. -| name | description | default | required | -|----------------------|------------------|---------|----------| -| REG_NAME_ | name | | y | -| REG_PORT_ | port | | y | -| REG_PROXY_REMOTEURL_ | proxy remoteurl | | y | -| REG_PROXY_USERNAME_ | proxy username | | n | -| REG_PROXY_PASSWORD_ | proxy password | | n | -| REG_PROXY_TTL_ | proxy ttl | 168h | n | -| REG_REDIS_ADDR_ | redis addr | | y | -| REG_REDIS_PASSWORD_ | redis password | | n | -| REG_LOG_LEVEL_ | log level | info | n | -| REG_ENV_ | distribution env | | n | -| REDIS_DATABASES | redis databases | 16 | n | +| name | description | default | required | +|--------------------------------|-------------------|------------|----------| +| REG_NAME_ | name | | y | +| REG_PORT_ | port | | y | +| REG_PROXY_REMOTEURL_ | proxy remoteurl | | y | +| REG_PROXY_USERNAME_ | proxy username | | n | +| REG_PROXY_PASSWORD_ | proxy password | | n | +| REG_PROXY_TTL_ | proxy ttl | 168h | n | +| REG_REDIS_ADDR_ | redis addr | | y | +| REG_REDIS_PASSWORD_ | redis password | | n | +| REG_LOG_LEVEL_ | log level | info | n | +| REG_ENV_ | distribution env | | n | +| REG_STORAGE_ | storage | filesystem | y | +| REG_STORAGE_S3_ACCESSKEY_ | s3 accesskey | | y | +| REG_STORAGE_S3_SECRETKEY_ | s3 secretkey | | y | +| REG_STORAGE_S3_REGIONENDPOINT_ | s3 regionendpoint | | y | +| REG_STORAGE_S3_REGION_ | s3 region | us-east-1 | n | +| REG_STORAGE_S3_BUCKET_ | s3 bucket | | y | +| REG_STORAGE_S3_ROOTDIRECTORY_ | s3 rootdirectory | | n | +| REDIS_DATABASES | redis databases | 16 | n | + ## mirrors diff --git a/rootfs/usr/local/bin/docker-entrypoint.sh b/rootfs/usr/local/bin/docker-entrypoint.sh index 0668f14..8b02855 100755 --- a/rootfs/usr/local/bin/docker-entrypoint.sh +++ b/rootfs/usr/local/bin/docker-entrypoint.sh @@ -17,10 +17,23 @@ redis_password="REG_REDIS_PASSWORD_${1}" redis_db="REG_REDIS_DB_${1}" env="REG_ENV_${1}" +storage="REG_STORAGE_${1}" +storage_val=${!storage:-filesystem} + mkdir -p --verbose /etc/distribution/"${!name}" -rootdirectory="${DIST_HOME}"/registry/"${!name}" -mkdir -p --verbose "${rootdirectory}" -chown -R dist:dist "${rootdirectory}" +if [ "${storage_val,,}" = "filesystem" ]; then + rootdirectory="${DIST_HOME}"/registry/"${!name}" + mkdir -p --verbose "${rootdirectory}" + chown -R dist:dist "${rootdirectory}" +fi + +s3_accesskey="REG_STORAGE_S3_ACCESSKEY_${1}" +s3_secretkey="REG_STORAGE_S3_SECRETKEY_${1}" +s3_region="REG_STORAGE_S3_REGION_${1}" +s3_regionendpoint="REG_STORAGE_S3_REGIONENDPOINT_${1}" +s3_bucket="REG_STORAGE_S3_BUCKET_${1}" +s3_rootdirectory="REG_STORAGE_S3_ROOTDIRECTORY_${1}" + cat >/etc/distribution/"${!name}"/config.yml<>/etc/distribution/"${!name}"/config.yml<>/etc/distribution/"${!name}"/config.yml<>/etc/distribution/"${!name}"/config.yml<