Mercurial > sat_docs
view docker/do_all.sh @ 105:b69056368901
docker: images optimisation:
- reduced the number of layers by grouping many instructions
- moved stuff which don't change a lot at the beginning, and hg/apt at the end
- scripts are not now in scripts/ subdirectories
- prosody.cfg.lua is added using ADD instead of getting it online
- .hg/dirstate is copied in base (backend) and libervia, so mercurial revision is known
- removed lot of useless WORKDIR instruction, they are replaced by "cd" inside RUN instructions
- cleaning (apt-clean, rm) is done on the same instruction as the one than generate the data, to avoid useless data in layers
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 28 Feb 2016 02:01:20 +0100 |
parents | bcba1966e6db |
children |
line wrap: on
line source
#!/bin/sh # This script build all container in the right order # Copyright (C) 2014 Jérôme Poisson (goffi@goffi.org) # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. DIRS="base media sat_nomedia sat jp primitivus sat_pubsub prosody salut libervia data" ACCOUNT="salutatoi" ori_dir=$(pwd) if [ $# -eq 0 ]; then cmd="build" else case $1 in build) cmd="build" BEFORE="-t" AFTER="." ;; push) cmd="push" TAG=":latest" ;; pull) cmd="pull" TAG=":latest" ;; *) printf "Invalid command ($1)\n" exit 1 ;; esac shift fi for cont_dir in $DIRS; do cont_name=$(grep -o "Salut à Toi/[^ ]\+" $cont_dir/Dockerfile | sed "s&Salut à Toi/&&" | tr '[:upper:]' '[:lower:]') cd "$cont_dir" printf "\n==> Doing a $cmd for $ACCOUNT/$cont_name in $cont_dir with extra [$@] <===\n\n" docker $cmd $BEFORE "$ACCOUNT/${cont_name}${TAG}" "$@" $AFTER err=$? cd "$ori_dir" if [ $err -ne 0 ]; then printf "$cmd of $cont_name failed (exit code $err), exiting\n" exit 1 fi done