Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
CURDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
|
|
|
function usage() {
|
2019-10-30 07:04:11 -04:00
|
|
|
printf "usage: docker-release.sh [OPTIONS]\n\n"
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
printf "builds and releases vinyldns artifacts\n\n"
|
|
|
|
printf "options:\n"
|
|
|
|
printf "\t-b, --branch: the branch of tag to use for the build; default is master\n"
|
|
|
|
printf "\t-c, --clean: indicates a fresh build or attempt to work with existing images; default is off\n"
|
2019-11-01 13:58:55 -04:00
|
|
|
printf "\t-l, --latest: indicates docker will tag image with latest; default is off\n"
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
printf "\t-p, --push: indicates docker will push to the repository; default is off\n"
|
|
|
|
printf "\t-r, --repository [REPOSITORY]: the docker repository where this image will be pushed; default is docker.io\n"
|
2019-10-30 07:04:11 -04:00
|
|
|
printf "\t-t, --tag [TAG]: sets the qualifier for the semver version; default is to not use a build tag\n"
|
|
|
|
printf "\t-v, --version [VERSION]: overrides version calculation and forces the version specified\n"
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
# Default the build to -SNAPSHOT if not set
|
2019-10-30 07:04:11 -04:00
|
|
|
BUILD_TAG=
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
REPOSITORY="docker.io"
|
|
|
|
DOCKER_PUSH=0
|
|
|
|
DO_BUILD=0
|
|
|
|
BRANCH="master"
|
2019-10-30 07:04:11 -04:00
|
|
|
V=
|
2019-11-01 13:58:55 -04:00
|
|
|
TAG_LATEST=0
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
|
|
|
|
while [ "$1" != "" ]; do
|
|
|
|
case "$1" in
|
|
|
|
-b | --branch)
|
|
|
|
BRANCH="$2"
|
|
|
|
shift 2
|
|
|
|
;;
|
|
|
|
-c | --clean)
|
|
|
|
DO_BUILD=1
|
|
|
|
shift
|
|
|
|
;;
|
2019-11-01 13:58:55 -04:00
|
|
|
-l | --latest)
|
|
|
|
TAG_LATEST=1
|
|
|
|
shift
|
|
|
|
;;
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
-p | --push)
|
|
|
|
DOCKER_PUSH=1
|
|
|
|
shift
|
|
|
|
;;
|
|
|
|
-r | --repository)
|
|
|
|
REPOSITORY="$2"
|
|
|
|
shift 2
|
|
|
|
;;
|
|
|
|
-t | --tag)
|
|
|
|
BUILD_TAG="-b$2"
|
|
|
|
shift 2
|
|
|
|
;;
|
2019-10-30 07:04:11 -04:00
|
|
|
-v | --version)
|
|
|
|
V="$2"
|
|
|
|
shift 2
|
|
|
|
;;
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
*)
|
|
|
|
usage
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
BASEDIR=$CURDIR/../
|
|
|
|
|
|
|
|
# Clear out our target
|
|
|
|
rm -rf $CURDIR/target && mkdir -p $CURDIR/target
|
|
|
|
|
|
|
|
# Download just the version.sbt file from the branch specified, we use this to calculate the version
|
|
|
|
wget "https://raw.githubusercontent.com/vinyldns/vinyldns/${BRANCH}/version.sbt" -P "${CURDIR}/target"
|
|
|
|
|
2019-10-30 07:04:11 -04:00
|
|
|
if [ -z "$V" ]; then
|
|
|
|
# Calculate the version by using version.sbt, this will pull out something like 0.9.4
|
|
|
|
V=$(find $CURDIR/target -name "version.sbt" | head -n1 | xargs grep "[ \\t]*version in ThisBuild :=" | head -n1 | sed 's/.*"\(.*\)".*/\1/')
|
|
|
|
echo "VERSION ON BRANCH ${BRANCH} IS ${V}"
|
|
|
|
VINYLDNS_VERSION=
|
|
|
|
|
|
|
|
if [[ "$V" == *-SNAPSHOT ]]; then
|
|
|
|
if [ -z "$BUILD_TAG" ]; then
|
|
|
|
# build tag is not defined, so assume -SNAPSHOT
|
|
|
|
VINYLDNS_VERSION="$V"
|
|
|
|
else
|
|
|
|
# build tag IS defined, drop the SNAPSHOT and append the build tag
|
|
|
|
VINYLDNS_VERSION="${V%?????????}${BUILD_TAG}"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
# NOT a -SNAPSHOT, append the build tag if there is one otherwise it will be empty!
|
|
|
|
VINYLDNS_VERSION="$V${BUILD_TAG}"
|
|
|
|
fi
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
else
|
2019-10-30 07:04:11 -04:00
|
|
|
VINYLDNS_VERSION="$V"
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
fi
|
2019-10-30 07:04:11 -04:00
|
|
|
export VINYLDNS_VERSION=$VINYLDNS_VERSION
|
|
|
|
|
|
|
|
echo "VINYLDNS VERSION BEING RELEASED IS $VINYLDNS_VERSION"
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
|
|
|
|
if [ $DO_BUILD -eq 1 ]; then
|
2021-10-27 13:43:21 -04:00
|
|
|
docker-compose -f "${CURDIR}/docker-compose.yml" build \
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
--no-cache \
|
|
|
|
--parallel \
|
|
|
|
--build-arg VINYLDNS_VERSION="${VINYLDNS_VERSION}" \
|
|
|
|
--build-arg BRANCH="${BRANCH}"
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
# Runs smoke tests to make sure the new images are sound
|
2021-10-27 13:43:21 -04:00
|
|
|
docker-compose -f "${CURDIR}/docker-compose.yml" --log-level ERROR up --exit-code-from functest
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
docker tag vinyldns/api:$VINYLDNS_VERSION $REPOSITORY/vinyldns/api:$VINYLDNS_VERSION
|
|
|
|
docker tag vinyldns/portal:$VINYLDNS_VERSION $REPOSITORY/vinyldns/portal:$VINYLDNS_VERSION
|
2019-11-01 13:58:55 -04:00
|
|
|
|
|
|
|
if [ $TAG_LATEST -eq 1 ]; then
|
|
|
|
echo "Tagging latest..."
|
|
|
|
docker tag vinyldns/api:$VINYLDNS_VERSION $REPOSITORY/vinyldns/api:latest
|
|
|
|
docker tag vinyldns/portal:$VINYLDNS_VERSION $REPOSITORY/vinyldns/portal:latest
|
|
|
|
fi
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $DOCKER_PUSH -eq 1 ]; then
|
|
|
|
docker push $REPOSITORY/vinyldns/api:$VINYLDNS_VERSION
|
|
|
|
docker push $REPOSITORY/vinyldns/portal:$VINYLDNS_VERSION
|
2019-11-01 13:58:55 -04:00
|
|
|
|
|
|
|
if [ $TAG_LATEST -eq 1 ]; then
|
|
|
|
echo "Pushing latest..."
|
|
|
|
docker push $REPOSITORY/vinyldns/api:latest
|
|
|
|
docker push $REPOSITORY/vinyldns/portal:latest
|
|
|
|
fi
|
Support building docker images locally and without SBT (#753)
Fixes #744
Overhauls our docker release process to run releases of docker outside of SBT. This was tested through the signing process deploying SNAPSHOT images to docker hub.
All images do a git clone to pull vinyldns, and perform the build of the container based on that git clone.
- A new `build` directory contains the things to be built, for this PR only the docker images are here. Anticipate possibly pulling in other artifacts in the future.
- `build/docker` contains all of the docker setup
- `build/docker/test` contains a func test docker image that can be used to test any VinylDNS API instance
- `build/docker/test-bind9` contains our bind9 setup
- `build/docker/api` is a MySQL only API distribution
- `build/docker/portal` is a MySQL only Portal distribution
In addition, a few files are added to make the build easier:
- `build/start.sh` starts a given vinyldns version
- `build/stop.sh` stops the current running vinyldns setup
- `build/release.sh` this is the **MAIN** guy that performs the build. Lots of arguments that are useful for testing. Can provide a repository (for publishing to a docker register that is not docker hub), for building clean vs. assuming docker images. Besides building everything, also runs func tests (smoke tests) against the docker image before completing.
Added a `README.md` for others to follow along with
To test..
1. Make sure you increase your docker machine settings to 4GB (the default of 2GB failed)
2. Go to the `build` directory
3. From there, run `./release.sh -c -t 111` to only build the docker images, this should build `0.9.4-b111`
4. Start it up, run `./start.sh -v 0.9.4-b111`
5. Login to the portal at http://localhost:9001
6. When finished, run `./stop.sh` from the build directory
*If you see an error code 137 error, you need to increase your memory*
2019-10-22 19:11:28 -04:00
|
|
|
fi
|