From 26fc5323ce8b996cf30d2d67796cca47755c4a35 Mon Sep 17 00:00:00 2001 From: Tomasz Lisowski Date: Mon, 24 Jun 2024 19:52:42 -0300 Subject: [PATCH] Improve dockerfile --- .gitignore | 12 ++++++++---- docker.sh | 7 +++++++ dockerfile | 16 +++++++++++----- lib/swicc | 2 +- 4 files changed, 27 insertions(+), 10 deletions(-) create mode 100755 docker.sh diff --git a/.gitignore b/.gitignore index f3f6a89..fdeda9d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,16 @@ -# Compiler output +# Compiler output. build/ build-lib/ -# Clangd config +# Clangd config. compile_flags.txt -# swICC FS Disk +# swICC FS Disk. *.swiccfs -# Logs +# Logs. *.log + +# Docker output. +docker/ +docker.log diff --git a/docker.sh b/docker.sh new file mode 100755 index 0000000..79beab7 --- /dev/null +++ b/docker.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -o nounset; # Abort on unbound variable. +set -o pipefail; # Don't hide errors within pipes. +set -o errexit; # Abort on non-zero exit status. + +docker build --progress=plain . -t tomasz-lisowski/swsim:1.0.0 2>&1 | tee docker.log; +docker run -v ./docker:/opt/out --tty --interactive --rm tomasz-lisowski/swsim:1.0.0; diff --git a/dockerfile b/dockerfile index 0ec97c8..960c576 100644 --- a/dockerfile +++ b/dockerfile @@ -1,12 +1,10 @@ -# docker build --progress=plain . -t tomasz-lisowski/swsim:1.0.0 2>&1 | tee build.log; -# docker run -v ./build:/opt/swsim/build/host --tty --rm tomasz-lisowski/swsim:1.0.0; - FROM ubuntu:22.04 AS base RUN set -eux; \ apt-get -qq update; \ apt-get -qq --yes dist-upgrade; + FROM base AS base__swicc COPY . /opt/swsim ENV DEP="cmake gcc gcc-multilib make" @@ -17,6 +15,14 @@ RUN set -eux; \ make -j $(nproc) main-static test-static; \ apt-get -qq --yes purge ${DEP}; + FROM base -COPY --from=base__swicc /opt/swsim/build /opt/swsim/build/local -ENTRYPOINT [ "/bin/bash", "-c", "(cp -r /opt/swsim/build/local/*.a /opt/swsim/build/host) && (cp -r /opt/swsim/build/local/*.elf /opt/swsim/build/host)" ] +COPY --from=base__swicc /opt/swsim/build /opt/swsim/build +COPY --from=base__swicc /opt/swsim/data /opt/swsim/data + +RUN set -eux; \ + rm -r /opt/swsim/build/swsim; \ + rm -r /opt/swsim/build/swicc; \ + rm -r /opt/swsim/build/test; + +ENTRYPOINT [ "bash", "-c", "cp -r /opt/swsim/* /opt/out" ] diff --git a/lib/swicc b/lib/swicc index 10f875e..3e330bf 160000 --- a/lib/swicc +++ b/lib/swicc @@ -1 +1 @@ -Subproject commit 10f875e0316e57806af9770432461aca0f434f9b +Subproject commit 3e330bfa9c332f13d41aaeea6ed55fdd80332b03