Signed-off-by: Mike Dougherty <mike.dougherty@docker.com>
| ... | ... |
@@ -18,8 +18,8 @@ usage() {
|
| 18 | 18 |
To run, I need: |
| 19 | 19 |
- to be in a container generated by the Dockerfile at the top of the Docker |
| 20 | 20 |
repository; |
| 21 |
-- to be provided with the name of an S3 bucket, in environment variable |
|
| 22 |
- AWS_S3_BUCKET; |
|
| 21 |
+- to be provided with the location of an S3 bucket and path, in |
|
| 22 |
+ environment variables AWS_S3_BUCKET and AWS_S3_BUCKET_PATH (default: ''); |
|
| 23 | 23 |
- to be provided with AWS credentials for this S3 bucket, in environment |
| 24 | 24 |
variables AWS_ACCESS_KEY and AWS_SECRET_KEY; |
| 25 | 25 |
- the passphrase to unlock the GPG key which will sign the deb packages |
| ... | ... |
@@ -62,6 +62,8 @@ fi |
| 62 | 62 |
|
| 63 | 63 |
VERSION=$(< VERSION) |
| 64 | 64 |
BUCKET=$AWS_S3_BUCKET |
| 65 |
+BUCKET_PATH=$BUCKET |
|
| 66 |
+[[ -n "$AWS_S3_BUCKET_PATH" ]] && BUCKET_PATH+=/$AWS_S3_BUCKET_PATH |
|
| 65 | 67 |
|
| 66 | 68 |
# These are the 2 keys we've used to sign the deb's |
| 67 | 69 |
# release (get.docker.com) |
| ... | ... |
@@ -94,10 +96,15 @@ write_to_s3() {
|
| 94 | 94 |
s3_url() {
|
| 95 | 95 |
case "$BUCKET" in |
| 96 | 96 |
get.docker.com|test.docker.com|experimental.docker.com) |
| 97 |
- echo "https://$BUCKET" |
|
| 97 |
+ echo "https://$BUCKET_PATH" |
|
| 98 | 98 |
;; |
| 99 | 99 |
*) |
| 100 |
- s3cmd ws-info s3://$BUCKET | awk -v 'FS=: +' '/http:\/\/'$BUCKET'/ { gsub(/\/+$/, "", $2); print $2 }'
|
|
| 100 |
+ BASE_URL=$( s3cmd ws-info s3://$BUCKET | awk -v 'FS=: +' '/http:\/\/'$BUCKET'/ { gsub(/\/+$/, "", $2); print $2 }' )
|
|
| 101 |
+ if [[ -n "$AWS_S3_BUCKET_PATH" ]] ; then |
|
| 102 |
+ echo "$BASE_URL/$AWS_S3_BUCKET_PATH" |
|
| 103 |
+ else |
|
| 104 |
+ echo "$BASE_URL" |
|
| 105 |
+ fi |
|
| 101 | 106 |
;; |
| 102 | 107 |
esac |
| 103 | 108 |
} |
| ... | ... |
@@ -224,7 +231,7 @@ release_build() {
|
| 224 | 224 |
;; |
| 225 | 225 |
esac |
| 226 | 226 |
|
| 227 |
- s3Dir=s3://$BUCKET/builds/$s3Os/$s3Arch |
|
| 227 |
+ s3Dir="s3://$BUCKET_PATH/builds/$s3Os/$s3Arch" |
|
| 228 | 228 |
latest= |
| 229 | 229 |
latestTgz= |
| 230 | 230 |
if [ "$latestBase" ]; then |
| ... | ... |
@@ -323,7 +330,7 @@ release_binaries() {
|
| 323 | 323 |
|
| 324 | 324 |
# TODO create redirect from builds/*/i686 to builds/*/i386 |
| 325 | 325 |
|
| 326 |
- cat <<EOF | write_to_s3 s3://$BUCKET/builds/index |
|
| 326 |
+ cat <<EOF | write_to_s3 s3://$BUCKET_PATH/builds/index |
|
| 327 | 327 |
# To install, run the following command as root: |
| 328 | 328 |
curl -sSL -O $(s3_url)/builds/Linux/x86_64/docker-$VERSION && chmod +x docker-$VERSION && sudo mv docker-$VERSION /usr/local/bin/docker |
| 329 | 329 |
# Then start docker in daemon mode: |
| ... | ... |
@@ -332,24 +339,24 @@ EOF |
| 332 | 332 |
|
| 333 | 333 |
# Add redirect at /builds/info for URL-backwards-compatibility |
| 334 | 334 |
rm -rf /tmp/emptyfile && touch /tmp/emptyfile |
| 335 |
- s3cmd --acl-public --add-header='x-amz-website-redirect-location:/builds/' --mime-type='text/plain' put /tmp/emptyfile "s3://$BUCKET/builds/info" |
|
| 335 |
+ s3cmd --acl-public --add-header='x-amz-website-redirect-location:/builds/' --mime-type='text/plain' put /tmp/emptyfile "s3://$BUCKET_PATH/builds/info" |
|
| 336 | 336 |
|
| 337 | 337 |
if [ -z "$NOLATEST" ]; then |
| 338 |
- echo "Advertising $VERSION on $BUCKET as most recent version" |
|
| 339 |
- echo "$VERSION" | write_to_s3 "s3://$BUCKET/latest" |
|
| 338 |
+ echo "Advertising $VERSION on $BUCKET_PATH as most recent version" |
|
| 339 |
+ echo "$VERSION" | write_to_s3 "s3://$BUCKET_PATH/latest" |
|
| 340 | 340 |
fi |
| 341 | 341 |
} |
| 342 | 342 |
|
| 343 | 343 |
# Upload the index script |
| 344 | 344 |
release_index() {
|
| 345 | 345 |
echo "Releasing index" |
| 346 |
- sed "s,url='https://get.docker.com/',url='$(s3_url)/'," hack/install.sh | write_to_s3 "s3://$BUCKET/index" |
|
| 346 |
+ sed "s,url='https://get.docker.com/',url='$(s3_url)/'," hack/install.sh | write_to_s3 "s3://$BUCKET_PATH/index" |
|
| 347 | 347 |
} |
| 348 | 348 |
|
| 349 | 349 |
release_test() {
|
| 350 | 350 |
echo "Releasing tests" |
| 351 | 351 |
if [ -e "bundles/$VERSION/test" ]; then |
| 352 |
- s3cmd --acl-public sync "bundles/$VERSION/test/" "s3://$BUCKET/test/" |
|
| 352 |
+ s3cmd --acl-public sync "bundles/$VERSION/test/" "s3://$BUCKET_PATH/test/" |
|
| 353 | 353 |
fi |
| 354 | 354 |
} |
| 355 | 355 |
|