1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
ARG UBUNTU_VERSION=18.04
FROM ubuntu:${UBUNTU_VERSION}
WORKDIR /opt/s2n
ARG GCC_VERSION=9
ARG ZSH_THEME=cypher
ENV GCC_VERSION=${GCC_VERSION} \
BUILD_S2N=true \
S2N_COVERAGE=false \
TESTS=integrationv2 \
LATEST_CLANG=true
# The `s2n_setup_env` assumes bash, not sh
SHELL ["/bin/bash", "-c"]
# set up user account
RUN set -eux; \
apt-get update; \
apt-get -y install --no-install-recommends\
curl sudo zsh unzip gnupg2 software-properties-common python-pip rubygems wget; \
gem install bundler; \
useradd -m s2n-dev; \
echo "s2n-dev ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/s2n-dev; \
chmod 0440 /etc/sudoers.d/s2n-dev; \
mkdir -p /home/s2n-dev/s2n; \
curl -L https://github.com/ohmyzsh/ohmyzsh/archive/master.zip -o /tmp/oh-my-zsh.zip; \
unzip /tmp/oh-my-zsh.zip -d /tmp; \
mkdir -p /home/s2n-dev/.zsh/plugins; \
mkdir -p /home/s2n-dev/.zsh/themes; \
cp /tmp/ohmyzsh-master/oh-my-zsh.sh /home/s2n-dev/.zsh/init.sh; \
cp -R /tmp/ohmyzsh-master/lib /home/s2n-dev/.zsh; \
cp /tmp/ohmyzsh-master/themes/${ZSH_THEME}.zsh-theme /home/s2n-dev/.zsh/themes/theme.zsh-theme; \
rm -rf /tmp/oh-my-zsh.zip /tmp/ohmyzsh-master; \
echo $'# ZSH setup\n\
export DISABLE_UPDATE_PROMPT=true\n\
export DISABLE_AUTO_UPDATE=true\n\
export ZSH="/home/s2n-dev/.zsh"\n\
export ZSH_THEME="theme"\n\
plugins=()\n\
source $ZSH/init.sh\n\
\n\
# s2n setup\n\
export BUILD_S2N=true\n\
export GCC_VERSION='"$GCC_VERSION"$'\n\
export TESTS=integrationv2\n\
export TEST_DEPS_DIR=/opt/s2n/test-deps\n\
export PATH=$TEST_DEPS_DIR/clang/bin:$PATH\n\
cd /home/s2n-dev/s2n && source /opt/s2n/codebuild/bin/s2n_setup_env.sh\n\
' > /home/s2n-dev/.zshrc; \
chown -R s2n-dev:s2n-dev /home/s2n-dev; \
rm -rf /var/lib/apt/lists/*; \
apt-get clean; \
rm -rf /tmp/*; \
echo done
ADD codebuild codebuild
# install dependencies
RUN set -eux; \
export LD_LIBRARY_PATH=""; \
. codebuild/bin/s2n_setup_env.sh; \
export PATH=$TEST_DEPS_DIR/clang/bin:$PATH; \
TESTS=integrationv2 codebuild/bin/s2n_install_test_dependencies.sh; \
TESTS=benchmark codebuild/bin/s2n_install_test_dependencies.sh; \
TESTS=fuzz codebuild/bin/s2n_install_test_dependencies.sh; \
TESTS=unit BUILD_S2N=false S2N_LIBCRYPTO=openssl-1.0.2 codebuild/bin/install_default_dependencies.sh; \
TESTS=unit BUILD_S2N=false S2N_LIBCRYPTO=openssl-1.0.2-fips codebuild/bin/install_default_dependencies.sh; \
TESTS=unit BUILD_S2N=false S2N_LIBCRYPTO=libressl codebuild/bin/install_default_dependencies.sh; \
TESTS=unit BUILD_S2N=false S2N_LIBCRYPTO=boringssl codebuild/bin/install_default_dependencies.sh; \
rm -rf /var/lib/apt/lists/*; \
apt-get clean; \
rm -rf /tmp/*; \
echo done
ARG OPENSSL_VERSION=openssl-1.1.1
ENV S2N_LIBCRYPTO=${OPENSSL_VERSION}
USER s2n-dev
WORKDIR /home/s2n-dev/s2n
CMD ["/bin/zsh","-l"]
|