40894614ac
In the original implementation of this, the latest running container containing "PICKME" was selected for the container to export. This creates a race condition. Instead we now identify the image by a UUID created each run, so that they will not overlap if multiple builds happen simultaneously. Change-Id: Iaaf5683435f424517774067a1d95732ad096c988
33 lines
1009 B
Bash
Executable File
33 lines
1009 B
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# docker_build.bash - Prepares and outputs a tarball'd docker repository
|
|
# suitable for injection into a coreos pxe image
|
|
#
|
|
|
|
set -e
|
|
|
|
OUTPUT_FILE="oem/container.tar.gz"
|
|
|
|
# If there's already a container.tar.gz, don't overwrite it -- instead, bail
|
|
if [[ -e "${OUTPUT_FILE}" ]]; then
|
|
echo "${OUTPUT_FILE} already exists. Will not overwrite. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
# Build the docker image
|
|
cd ../../
|
|
docker build -t oemdocker .
|
|
cd -
|
|
|
|
# Create a UUID to identify the build
|
|
CONTAINER_UUID=`uuidgen`
|
|
|
|
# Export the oemdocker repository to a tarball so it can be embedded in CoreOS
|
|
# TODO: Investigate running a container and using "export" to flatten the
|
|
# image to shrink the CoreOS fs size. This will also require run.sh to
|
|
# use docker import instead of docker load as well.
|
|
docker run oemdocker echo $CONTAINER_UUID
|
|
CONTAINER=`docker ps -a --no-trunc |grep $CONTAINER_UUID|awk '{print $1}'|head -n1`
|
|
echo $CONTAINER
|
|
docker export $CONTAINER | gzip > ${OUTPUT_FILE}
|