Merge pull request #178 from gwsystems/cleanup-dockerfile

Cleanup dockerfile
main
Sean McBride 4 years ago committed by GitHub
commit ee12c4ee8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,55 +1,74 @@
# Inspired by lucet's Dockerfile.
# using ubuntu 20 docker image
FROM ubuntu:focal
# using ubuntu 18 docker image
FROM ubuntu:bionic
ARG DEBIAN_FRONTEND=noninteractive
# install some basic packages
RUN apt-get update
# General GCC C/C++ Build toolchain
# pkg-config, libtool - used by PocketSphinx
# cmake - used by cmsis
RUN apt-get install -y --no-install-recommends \
automake \
build-essential \
curl \
git \
binutils-dev \
cmake \
ca-certificates \
libssl-dev \
pkg-config \
gcc \
g++ \
git \
libc++-dev \
libtinfo5 \
libtool \
pkg-config
# LLVM Tools
RUN apt-get install -y --no-install-recommends \
clang-8 \
clang-tools-8 \
llvm-8 \
llvm-8-dev \
libc++-dev \
libc++abi-dev \
lld-8 \
lldb-8 \
libclang-8-dev \
libclang-common-8-dev \
vim \
binutils-dev \
build-essential \
automake \
libtool \
strace \
less
RUN rm -rf /var/lib/apt/lists/*
# set to use our installed clang version
libclang-common-8-dev
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-8 100
RUN update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-8 100
# set LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/local/lib
# Needed to install from http endpoints via curl
RUN apt-get install -y --no-install-recommends \
curl \
ca-certificates \
libssl-dev
RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain stable -y
# Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable --component rustfmt --target wasm32-wasi -y
ENV PATH=/root/.cargo/bin:$PATH
RUN cargo install --debug cargo-audit cargo-watch rsign2
RUN rustup component add rustfmt
RUN rustup target add wasm32-wasi
# WASI-SDK
RUN curl -sS -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-8/wasi-sdk_8.0_amd64.deb && dpkg -i wasi-sdk_8.0_amd64.deb && rm -f wasi-sdk_8.0_amd64.deb
ENV WASI_SDK=/opt/wasi-sdk
RUN cargo install --debug cargo-audit cargo-watch rsign2
# Test Script Stuff
RUN apt-get install -y --no-install-recommends \
fonts-dejavu \
fonts-cascadia-code \
fonts-roboto \
imagemagick \
netpbm \
pango1.0-tools \
wamerican \
wget
RUN curl -sS -L -O https://github.com/CraneStation/wasi-sdk/releases/download/wasi-sdk-7/wasi-sdk_7.0_amd64.deb && dpkg -i wasi-sdk_7.0_amd64.deb && rm -f wasi-sdk_7.0_amd64.deb
# Interactive Tools
RUN apt-get install -y --no-install-recommends \
less \
gdb \
strace \
vim
# We need to set the locale for pango-view
ENV LANG C.UTF-8
ENV LANGUAGE C.UTF-8
ENV LC_ALL C.UTF-8
ENV WASI_SDK=/opt/wasi-sdk
ENV PATH=/opt/sledge/bin:$PATH
ENV LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
runtime_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$runtime_directory"/bin && pwd)
log="$experiment_directory/log.csv"

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)
did_pass=true

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)
log="$experiment_directory/log.csv"

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)
@ -26,7 +27,7 @@ total_count=10
for ((i = 0; i < total_count; i++)); do
echo "$i"
ext="$RANDOM"
curl -H 'Expect:' -H "Content-Type: image/jpg" --data-binary "@flower.jpg" --output "result_$ext.png" localhost:10000 2>/dev/null 1>/dev/null
curl -H 'Expect:' -H "Content-Type: image/jpg" --data-binary "@flower.jpg" --output "result_$ext.png" localhost:10000 2>/dev/null 1>/dev/null || exit 1
pixel_differences="$(compare -identify -metric AE "result_$ext.png" expected_result.png null: 2>&1 >/dev/null)"

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)
log="$experiment_directory/log.csv"

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)
log="$experiment_directory/log.csv"

@ -2,7 +2,7 @@
# Installs the deps needed for run.sh
if [ "$(whoami)" == "root" ]; then
apt-get install netpbm pango1.0-tools wamerican
apt-get install netpbm pango1.0-tools wamerican fonts-roboto fonts-cascadia-code fonts-dejavu
else
sudo apt-get install netpbm pango1.0-tools wamerican
sudo apt-get install netpbm pango1.0-tools wamerican fonts-roboto fonts-cascadia-code fonts-dejavu
fi

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)
log="$experiment_directory/log.csv"
@ -17,8 +18,8 @@ else
fi
word_count=100
fonts=("mono" "URW Gothic" "Lobster Two")
total_count=100
fonts=("DejaVu Sans Mono" "Roboto" "Cascadia Code")
total_count=10
for ((i = 1; i <= total_count; i++)); do
echo "Test $i"
@ -27,25 +28,25 @@ for ((i = 1; i <= total_count; i++)); do
for font in "${fonts[@]}"; do
# For whatever reason, templating in multiple word strips was a pain, so brute forcing
case "$font" in
"mono")
echo "Mono"
pango-view --font="mono" -qo mono_words.png -t "$words"
pngtopnm mono_words.png >mono_words.pnm
"DejaVu Sans Mono")
echo "DejaVu Sans Mono"
pango-view --font="DejaVu Sans Mono" -qo mono_words.png -t "$words" || exit 1
pngtopnm mono_words.png >mono_words.pnm || exit 1
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @mono_words.pnm localhost:10000 2>/dev/null)
diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result")
;;
"URW Gothic")
echo "URW Gothic"
pango-view --font="URW Gothic" -qo URW_Gothic_words.png -t "$words"
pngtopnm URW_Gothic_words.png >URW_Gothic_words.pnm
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @URW_Gothic_words.pnm localhost:10002 2>/dev/null)
"Roboto")
echo "Roboto"
pango-view --font="Roboto" -qo Roboto_words.png -t "$words" || exit 1
pngtopnm Roboto_words.png >Roboto_words.pnm || exit 1
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @Roboto_words.pnm localhost:10002 2>/dev/null)
diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result")
;;
"Lobster Two")
echo "Lobster Two"
pango-view --font="Lobster Two" -qo Lobster_Two_words.png -t "$words"
pngtopnm Lobster_Two_words.png >Lobster_Two_words.pnm
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @Lobster_Two_words.pnm localhost:10001 2>/dev/null)
"Cascadia Code")
echo "Cascadia Code"
pango-view --font="Cascadia Code" -qo Cascadia_Code_words.png -t "$words" || exit 1
pngtopnm Cascadia_Code_words.png >Cascadia_Code_words.pnm || exit 1
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @Cascadia_Code_words.pnm localhost:10001 2>/dev/null)
diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result")
;;
esac

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)
log="$experiment_directory/log.csv"
@ -31,8 +32,8 @@ for ((i = 0; i < total_count; i++)); do
for word_count in "${word_counts[@]}"; do
echo "${word_count}"_words.pnm
words="$(shuf -n"$word_count" /usr/share/dict/american-english)"
pango-view --font=mono -qo "$word_count"_words.png -t "$words"
pngtopnm "$word_count"_words.png >"$word_count"_words.pnm
pango-view --font=mono -qo "$word_count"_words.png -t "$words" || exit 1
pngtopnm "$word_count"_words.png >"$word_count"_words.pnm || exit 1
result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @"${word_count}"_words.pnm localhost:${word_count_to_port["$word_count"_words.pnm]} 2>/dev/null)

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)

@ -5,6 +5,7 @@
# Also disables pagination and stopping on SIGUSR1
experiment_directory=$(pwd)
echo "$experiment_directory"
project_directory=$(cd ../../../.. && pwd)
binary_directory=$(cd "$project_directory"/bin && pwd)
did_pass=true

@ -1 +1 @@
Subproject commit 3060d0102555aab949308247a78252fa75568e45
Subproject commit 3bbad277b334744595a64b193e6df6d5d31d9dfd

@ -1,53 +1,54 @@
#!/bin/bash
# Test Driver Script
if [[ $0 != "./test.sh" ]]; then
echo "Must run in same directory as ./test.sh"
exit 1
fi
base_dir=$(pwd)
# Awsm
cd awsm && cargo build --release && cd ..
cd "$base_dir/awsm" && cargo build --release || exit 1
# Sledge
cd runtime && make clean all && cd ..
cd "$base_dir/runtime" && make clean all || exit 1
# OCR Build
# FIXME: gocr incorectly reports up to date
cd runtime/tests && make -B clean gocr && cd ../..
cd "$base_dir/runtime/tests" && make -B clean gocr || exit 1
# OCR Tests
cd runtime/experiments/applications/ocr/hyde && ./run.sh && cd ../../../../..
cd runtime/experiments/applications/ocr/handwriting && ./run.sh && cd ../../../../..
cd runtime/experiments/applications/ocr/fivebyeight && ./run.sh && cd ../../../../..
# FIXME: Install scripts will only work after on Ubuntu 20 LTS
# cd runtime/experiments/applications/ocr/by_word && ./install.sh && cd ../../../../..
# cd runtime/experiments/applications/ocr/by_word && ./run.sh && cd ../../../../..
# cd runtime/experiments/applications/ocr/by_font && ./install.sh && cd ../../../../..
# cd runtime/experiments/applications/ocr/by_font && ./run.sh && cd ../../../../..
# cd runtime/experiments/applications/ocr/by_dpi && ./install.sh && cd ../../../../..
# cd runtime/experiments/applications/ocr/by_dpi && ./run.sh && cd ../../../../..
cd "$base_dir/runtime/experiments/applications/ocr/hyde" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ocr/handwriting" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ocr/fivebyeight" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ocr/by_word" && ./install.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ocr/by_word" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ocr/by_font" && ./install.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ocr/by_font" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ocr/by_dpi" && ./install.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ocr/by_dpi" && ./run.sh || exit 1
# EKF Build
cd runtime/tests && make -B clean tinyekf && cd ../..
cd "$base_dir/runtime/tests" && make -B clean tinyekf || exit 1
# EKF Tests
cd runtime/experiments/applications/ekf/by_iteration && ./run.sh && cd ../../../../..
cd runtime/experiments/applications/ekf/one_iteration && ./run.sh && cd ../../../../..
cd "$base_dir/runtime/experiments/applications/ekf/by_iteration" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/ekf/one_iteration" && ./run.sh || exit 1
# cifar10 Build
cd runtime/tests && make -B clean cifar10 && cd ../..
cd "$base_dir/runtime/tests" && make -B clean cifar10 || exit 1
# cifar10 Tests
cd runtime/experiments/applications/imageclassification && ./run.sh && cd ../../../..
cd "$base_dir/runtime/experiments/applications/imageclassification" && ./run.sh || exit 1
# sod Build
cd runtime/tests && make -B clean sod && cd ../..
cd "$base_dir/runtime/tests" && make -B clean sod || exit 1
# sod Tests
cd runtime/experiments/applications/imageresize/test && ./install.sh && cd ../../../../..
cd runtime/experiments/applications/imageresize/test && ./run.sh && cd ../../../../..
cd runtime/experiments/applications/imageresize/by_resolution && ./install.sh && cd ../../../../..
cd runtime/experiments/applications/imageresize/by_resolution && ./run.sh && cd ../../../../..
cd runtime/experiments/applications/licenseplace/1 && ./run.sh && cd ../../../../..
cd runtime/experiments/applications/licenseplace/2 && ./run.sh && cd ../../../../..
cd runtime/experiments/applications/licenseplace/4 && ./run.sh && cd ../../../../..
cd runtime/experiments/applications/licenseplace && ./run.sh && cd ../../../..
cd "$base_dir/runtime/experiments/applications/imageresize/test" && ./install.sh || exit 1
cd "$base_dir/runtime/experiments/applications/imageresize/test" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/imageresize/by_resolution" && ./install.sh || exit 1
cd "$base_dir/runtime/experiments/applications/imageresize/by_resolution" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/licenseplate/by_plate_count" && ./run.sh || exit 1
cd "$base_dir/runtime/experiments/applications/licenseplate" && ./run.sh || exit 1

Loading…
Cancel
Save