git.iko.soy/typeable/octopod
on new-control-scripts help sign in
60 lines 1.6 kB history raw
1#!/usr/bin/env bash
3set -e
5build_octo_cli_docker_image() {
6 nix-build ./nix -A octo-cli-container -o "$1"
7}
9build_octopod_server_docker_image() {
10 nix-build ./nix -A octopod-server-container --arg migrations "$1" -o "$2"
13push_docker_images() {
14 outfile=latest-octopod-server-docker
15 for image_name in $octo_cli_docker $octopod_server_docker; do
16 image_type=$(echo "$image_name" | cut -d- -f1)
17 image=$(ls -ls "$image_name" | awk '{print $12}')
18 echo "size: $(du -sh $image)"
19 docker load --input "$image" | tee "$outfile"
20 nixcontainer=$(awk '{print $3}' $outfile)
21 docker tag "$nixcontainer" "typeable/${image_type}:$1"
22 docker push "typeable/${image_type}:$1"
23 echo "Published: ${image_type}:$1"
24 done
25 rm $outfile
28build_docker_images() {
29 build_octo_cli_docker_image "$octo_cli_docker"
30 build_octopod_server_docker_image "$migrations" "$octopod_server_docker"
33export tag=$(git rev-parse HEAD)
34export migrations="./migrations"
35export octo_cli_docker="octo-docker"
36export octopod_server_docker="octopod-server-docker"
38case "$1" in
39build-and-push)
40 echo "$1 mode"
42 if test -z "$2"; then
43 echo "Please provide a tag to upload to"
44 exit 1
45 fi
47 build_docker_images
48 push_docker_images $2
49 ;;
50build)
51 echo "$1 mode"
52 build_docker_images
53 ;;
54*)
55 echo "usage:"
56 echo " $0 build Builds the docker images."
57 echo " $0 build-and-push <tag> Builds the docker images and uploads it to Docker Hub under the tag <tag>."
58 exit 1
59 ;;
60esac