dockerfile tweaks

Most importantly, in build-ui.bash, fix an extra "&&". This meant
that if the build command fails, it would proceed and cause confusion.
This happened for me: I ran it without the emulation installed. Both
the build-server and deploy stages had problems, but because of the "&&"
the deploy target didn't actually return failure. After I fixed the
emulation problem, there was a bad cached layer.

Also save the build output from the dev stage.
This commit is contained in:
Scott Lamb 2021-03-27 16:34:14 -07:00
parent 1686196cfb
commit 64cfd6ed44
5 changed files with 25 additions and 6 deletions

View File

@ -11,6 +11,8 @@ set -o xtrace
mkdir /docker-build-debug/build-server
exec > >(tee -i /docker-build-debug/build-server/output) 2>&1
date
uname -a
ls -laFR /cargo-cache > /docker-build-debug/build-server/cargo-cache-before
ls -laFR /var/lib/moonfire-nvr/target \
> /docker-build-debug/build-server/target-before
@ -32,3 +34,4 @@ sudo install -m 755 ~/moonfire-nvr /usr/local/bin/moonfire-nvr
ls -laFR /cargo-cache > /docker-build-debug/build-server/cargo-cache-after
ls -laFR /var/lib/moonfire-nvr/target \
> /docker-build-debug/build-server/target-after
date

View File

@ -12,7 +12,11 @@ set -o xtrace
mkdir /docker-build-debug/build-ui
exec > >(tee -i /docker-build-debug/build-ui/output) 2>&1
date
uname -a
time npm ci
time npm run build
ls -laFR /var/lib/moonfire-nvr/src/ui/node_modules \
> /docker-build-debug/build-ui/node_modules-after
date

View File

@ -14,6 +14,8 @@ exec > >(tee -i /docker-build-debug/deploy/output) 2>&1
ls -laFR /var/cache/apt \
> /docker-build-debug/deploy/var-cache-apt-before
date
uname -a
export DEBIAN_FRONTEND=noninteractive
time apt-get update
time apt-get install --assume-yes --no-install-recommends \
@ -24,9 +26,10 @@ time apt-get install --assume-yes --no-install-recommends \
sudo \
sqlite3 \
tzdata \
vim-nox && \
vim-nox
rm -rf /var/lib/apt/lists/*
ln -s moonfire-nvr /usr/local/bin/nvr
ls -laFR /var/cache/apt \
> /docker-build-debug/deploy/var-cache-apt-after
date

View File

@ -9,13 +9,16 @@ set -o errexit
set -o pipefail
set -o xtrace
export DEBIAN_FRONTEND=noninteractive
mkdir --mode=1777 /docker-build-debug
mkdir /docker-build-debug/dev-common
exec > >(tee -i /docker-build-debug/dev-common/output) 2>&1
date
uname -a
ls -laFR /var/cache/apt > /docker-build-debug/dev-common/var-cache-apt-before
export DEBIAN_FRONTEND=noninteractive
# This file cleans apt caches after every invocation. Instead, we use a
# buildkit cachemount to avoid putting them in the image while still allowing
# some reuse.
@ -74,3 +77,4 @@ EOF
chown moonfire-nvr:moonfire-nvr /var/lib/moonfire-nvr/.buildrc
ls -laFR /var/cache/apt > /docker-build-debug/dev-common/var-cache-apt-after
date

View File

@ -9,13 +9,17 @@ set -o errexit
set -o pipefail
set -o xtrace
mkdir /docker-build-debug/dev
exec > >(tee -i /docker-build-debug/dev/output) 2>&1
date
uname -a
ls -laFR /var/cache/apt > /docker-build-debug/dev/var-cache-apt-before
export DEBIAN_FRONTEND=noninteractive
packages=()
mkdir -p /docker-build-debug/dev
ls -laFR /var/cache/apt > /docker-build-debug/dev/var-cache-apt-before
if [[ "${BUILDARCH}" != "${TARGETARCH}" ]]; then
# Set up cross compilation.
case "${TARGETARCH}" in
@ -116,3 +120,4 @@ else
fi
ls -laFR /var/cache/apt > /docker-build-debug/dev/var-cache-apt-after
date