31 lines
942 B
Bash
Executable File
31 lines
942 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# This will build and push public images in the images/ folder to
|
|
# DockerHub based on your Docker username with the
|
|
# format: $username/dev-env-$folder:latest
|
|
|
|
set -e
|
|
|
|
docker_username=$(docker-credential-$(jq -r .credsStore ~/.docker/config.json) list | jq -r '. | to_entries[] | select(.key | contains("docker.io")) | last(.value)')
|
|
|
|
build_and_push() {
|
|
folder=$1
|
|
basename=$(basename -- "$folder")
|
|
name=${basename%.*}
|
|
docker build $folder -t bencdr/dev-env-$name:latest
|
|
docker push $docker_username/dev-env-$name:latest
|
|
}
|
|
|
|
build_and_push "images/base"
|
|
|
|
# Build all other images in the images/ folder
|
|
# note: if you have multiple base images or heirchal images
|
|
# you'll want to build them in a controlled order above and
|
|
# exclude them. can be comma or space seperated :)
|
|
exclude="images/base"
|
|
|
|
for folder in images/*; do
|
|
if [[ ! "$exclude" == *"$folder"* ]]; then
|
|
build_and_push $folder
|
|
fi
|
|
done |