diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..61f1cad --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.tar.gz +*.log + diff --git a/debian/example/bin-example.dockerfile b/debian/example/bin-example.dockerfile new file mode 100644 index 0000000..0d97138 --- /dev/null +++ b/debian/example/bin-example.dockerfile @@ -0,0 +1,34 @@ +# sid-bin-test.dockerfile +# +# Copyright (C) 2006-2017 wolfSSL Inc. +# +# This file is part of wolfSSL. +# +# wolfSSL is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# wolfSSL 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA + +ARG WOLFSSL_DEBIAN_TAG=latest +FROM wolfssl/debian:$WOLFSSL_DEBIAN_TAG + +WORKDIR /wolfssl + +EXPOSE 11111 + +ADD examples.tar.gz /wolfssl + +COPY docker-entrypoint.sh /wolfssl/docker-entrypoint.sh + +ENTRYPOINT ["/wolfssl/docker-entrypoint.sh"] + +CMD ["bash"] \ No newline at end of file diff --git a/debian/example/docker-build-examples.sh b/debian/example/docker-build-examples.sh new file mode 100755 index 0000000..0485a32 --- /dev/null +++ b/debian/example/docker-build-examples.sh @@ -0,0 +1,45 @@ +#!/bin/sh +# +# Docker examples builder (docker-build-examples.sh) +# +# Copyright (C) 2006-2017 wolfSSL Inc. +# +# This file is part of wolfSSL. +# +# wolfSSL is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# wolfSSL 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA + +WOLFSSL_VERSION="3.12.0-stable" +TAGS="sid-bin src-bin" + +docker build \ + -t wolfssl/debian/example-builder \ + -f example-builder.dockerfile \ + --build-arg WOLFSSL_VERSION=$WOLFSSL_VERSION \ + . + +docker run \ + --rm \ + --entrypoint cat \ + wolfssl/debian/example-builder \ + /wolfssl/examples.tar.gz \ + > examples.tar.gz + +for TAG in $TAGS; do + docker build \ + -t wolfssl/debian/example:$TAG \ + -f bin-example.dockerfile \ + --build-arg WOLFSSL_DEBIAN_TAG=$TAG \ + . +done diff --git a/debian/example/docker-entrypoint.sh b/debian/example/docker-entrypoint.sh new file mode 100755 index 0000000..5f96378 --- /dev/null +++ b/debian/example/docker-entrypoint.sh @@ -0,0 +1,14 @@ +#!/bin/bash +set -e + +echo "Container's IP address: `awk 'END{print $1}' /etc/hosts`" + +if [ "$1" = 'server' ]; then + ./examples/server/$@ -bi +else + if [ "$1" = 'client' ]; then + ./examples/client/$@ + else + exec "$@" + fi +fi \ No newline at end of file diff --git a/debian/example/example-builder.dockerfile b/debian/example/example-builder.dockerfile new file mode 100644 index 0000000..649731b --- /dev/null +++ b/debian/example/example-builder.dockerfile @@ -0,0 +1,70 @@ +# Dockerfile +# +# Copyright (C) 2006-2017 wolfSSL Inc. +# +# This file is part of wolfSSL. +# +# wolfSSL is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# wolfSSL 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA + +FROM debian + +# installing build deps +RUN set -eux \ + && buildDeps=' \ + autoconf \ + automake \ + ca-certificates \ + curl \ + g++ \ + libtool \ + make \ + unzip \ + ' \ + && apt-get update \ + && apt-get install -y --no-install-recommends $buildDeps \ + && rm -rf /var/lib/apt/lists/* + +ARG WOLFSSL_VERSION + +# downloading source files +RUN set -eux \ + && curl \ + -LS https://github.com/wolfSSL/wolfssl/archive/v${WOLFSSL_VERSION}.zip \ + -o v${WOLFSSL_VERSION}.zip \ + && unzip v${WOLFSSL_VERSION}.zip \ + && rm v${WOLFSSL_VERSION}.zip + +# building and installing wolfssl +RUN set -eux \ + && cd wolfssl-${WOLFSSL_VERSION} \ + && ./autogen.sh \ + && ./configure \ + --disable-dependency-tracking \ + --enable-sha224 \ + --enable-distro \ + --disable-silent-rules \ + && make \ + && make check + +# create testing package +RUN set -eux \ + && mkdir /wolfssl \ + && tar -czvf /wolfssl/examples.tar.gz \ + -C /wolfssl-${WOLFSSL_VERSION} \ + examples/client/client \ + examples/server/server \ + examples/client/.libs \ + examples/server/.libs \ + certs