From 3b83aaab00e6b268ce85abf692a4587cd54d6ea4 Mon Sep 17 00:00:00 2001 From: Helge Hess Date: Fri, 21 Apr 2017 21:57:13 +0200 Subject: [PATCH 1/5] Work on Docker --- Docker/mod_swift-demo.dockerfile | 47 ++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Docker/mod_swift-demo.dockerfile diff --git a/Docker/mod_swift-demo.dockerfile b/Docker/mod_swift-demo.dockerfile new file mode 100644 index 0000000..19d3795 --- /dev/null +++ b/Docker/mod_swift-demo.dockerfile @@ -0,0 +1,47 @@ +# Dockerfile +# +# docker run -p 8042:8042 -d helje5/rpi-mod_swift-demo +# +# time docker build -t modswift/mod_swift-demo:latest \ +# -t modswift/mod_swift-demo:3.1.0 \ +# -f mod_swift-demo.dockerfile \ +# . +# +FROM swift:3.1.0 + +ARG MOD_SWIFT_VERSION=0.7.6 + +# rpi-swift sets it to swift +USER root + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get install -y wget curl \ + autoconf libtool pkg-config \ + apache2 apache2-dev + +# dirty hack to get Swift module for APR working on Linux +# (Note: I've found a better way, stay tuned.) +RUN bash -c "\ + head -n -6 /usr/include/apr-1.0/apr.h > /tmp/zz-apr.h; \ + echo '' >> /tmp/zz-apr.h; \ + echo '// mod_swift build hack' >> /tmp/zz-apr.h; \ + echo 'typedef int pid_t;' >> /tmp/zz-apr.h; \ + tail -n 6 /usr/include/apr-1.0/apr.h >> /tmp/zz-apr.h; \ + mv /usr/include/apr-1.0/apr.h /usr/include/apr-1.0/apr-original.h; \ + mv /tmp/zz-apr.h /usr/include/apr-1.0/apr.h" + + +USER swift + +RUN bash -c "curl -L https://github.com/AlwaysRightInstitute/mod_swift/archive/$MOD_SWIFT_VERSION.tar.gz | tar zx" + +WORKDIR /home/swift/mod_swift-$MOD_SWIFT_VERSION + +RUN make all + +EXPOSE 8042 + +CMD LD_LIBRARY_PATH="$PWD/.libs:$LD_LIBRARY_PATH" \ + EXPRESS_VIEWS=mods_expressdemo/views apache2 \ + -X -d $PWD -f apache-ubuntu.conf From b71011dfb01392770d2b0ad77300fc46987a19c1 Mon Sep 17 00:00:00 2001 From: Helge Hess Date: Fri, 21 Apr 2017 22:34:46 +0200 Subject: [PATCH 2/5] An apparently working x86 docker --- Docker/Makefile | 17 +++++++++++++++++ Docker/mod_swift-demo-dev.dockerfile | 28 ++++++++++++++++++++++++++++ Docker/mod_swift-demo.dockerfile | 12 +++++++++++- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 Docker/Makefile create mode 100644 Docker/mod_swift-demo-dev.dockerfile diff --git a/Docker/Makefile b/Docker/Makefile new file mode 100644 index 0000000..7b10095 --- /dev/null +++ b/Docker/Makefile @@ -0,0 +1,17 @@ +# Makefile + +all : demo + +demo : + time docker build \ + -t modswift/mod_swift-demo:latest \ + -t modswift/mod_swift-demo:3.1.0 \ + -f mod_swift-demo.dockerfile \ + $(PWD) + +demo-dev : + time docker build \ + -t modswift/mod_swift-demo-dev:latest \ + -t modswift/mod_swift-demo-dev:3.1.0 \ + -f mod_swift-demo-dev.dockerfile \ + $(PWD) diff --git a/Docker/mod_swift-demo-dev.dockerfile b/Docker/mod_swift-demo-dev.dockerfile new file mode 100644 index 0000000..3541f0c --- /dev/null +++ b/Docker/mod_swift-demo-dev.dockerfile @@ -0,0 +1,28 @@ +# Dockerfile +# +# docker run -i --tty --rm -p 8042:8042 modswift/mod_swift-demo-dev +# +FROM modswift/mod_swift-demo + +# rpi-swift sets it to swift +USER root + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get install -y vim emacs make wget sudo + + +# setup sudo + +RUN adduser swift sudo +RUN echo 'swift ALL=(ALL:ALL) ALL' > /etc/sudoers.d/swift +RUN chmod 0440 /etc/sudoers.d/swift +RUN echo 'swift:swift' | chpasswd + + +USER swift + +ARG MOD_SWIFT_VERSION=0.7.6 +WORKDIR /home/swift/mod_swift-$MOD_SWIFT_VERSION + +CMD bash diff --git a/Docker/mod_swift-demo.dockerfile b/Docker/mod_swift-demo.dockerfile index 19d3795..8f7c88b 100644 --- a/Docker/mod_swift-demo.dockerfile +++ b/Docker/mod_swift-demo.dockerfile @@ -1,6 +1,6 @@ # Dockerfile # -# docker run -p 8042:8042 -d helje5/rpi-mod_swift-demo +# docker run -p 8042:8042 -d modswift/mod_swift-demo # # time docker build -t modswift/mod_swift-demo:latest \ # -t modswift/mod_swift-demo:3.1.0 \ @@ -16,6 +16,7 @@ USER root ENV DEBIAN_FRONTEND noninteractive +RUN apt-get -q update RUN apt-get install -y wget curl \ autoconf libtool pkg-config \ apache2 apache2-dev @@ -32,7 +33,16 @@ RUN bash -c "\ mv /tmp/zz-apr.h /usr/include/apr-1.0/apr.h" +# fixup Swift docker install, CoreFoundation lacks other-r flags +# https://github.com/swiftdocker/docker-swift/issues/70 +RUN chmod -R o+r /usr/lib/swift + + +# create Swift user + +RUN useradd --create-home --shell /bin/bash swift USER swift +WORKDIR /home/swift RUN bash -c "curl -L https://github.com/AlwaysRightInstitute/mod_swift/archive/$MOD_SWIFT_VERSION.tar.gz | tar zx" From 4923468e51357bf761ad80f98ef2923a36e0323a Mon Sep 17 00:00:00 2001 From: Helge Hess Date: Fri, 21 Apr 2017 22:38:54 +0200 Subject: [PATCH 3/5] Betta run instructions --- Docker/mod_swift-demo.dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Docker/mod_swift-demo.dockerfile b/Docker/mod_swift-demo.dockerfile index 8f7c88b..58f6a8a 100644 --- a/Docker/mod_swift-demo.dockerfile +++ b/Docker/mod_swift-demo.dockerfile @@ -1,6 +1,6 @@ # Dockerfile # -# docker run -p 8042:8042 -d modswift/mod_swift-demo +# docker run --name mod_swift-demo -p 8042:8042 -d modswift/mod_swift-demo # # time docker build -t modswift/mod_swift-demo:latest \ # -t modswift/mod_swift-demo:3.1.0 \ From 8e01b49a6f63de9a9731b86029c826614c7ee014 Mon Sep 17 00:00:00 2001 From: Helge Hess Date: Fri, 21 Apr 2017 22:39:22 +0200 Subject: [PATCH 4/5] Move out of view --- {Docker => .docker}/Makefile | 0 {Docker => .docker}/mod_swift-demo-dev.dockerfile | 0 {Docker => .docker}/mod_swift-demo.dockerfile | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {Docker => .docker}/Makefile (100%) rename {Docker => .docker}/mod_swift-demo-dev.dockerfile (100%) rename {Docker => .docker}/mod_swift-demo.dockerfile (100%) diff --git a/Docker/Makefile b/.docker/Makefile similarity index 100% rename from Docker/Makefile rename to .docker/Makefile diff --git a/Docker/mod_swift-demo-dev.dockerfile b/.docker/mod_swift-demo-dev.dockerfile similarity index 100% rename from Docker/mod_swift-demo-dev.dockerfile rename to .docker/mod_swift-demo-dev.dockerfile diff --git a/Docker/mod_swift-demo.dockerfile b/.docker/mod_swift-demo.dockerfile similarity index 100% rename from Docker/mod_swift-demo.dockerfile rename to .docker/mod_swift-demo.dockerfile From 3e99941d68faee3969235b1135ce057f4dccc772 Mon Sep 17 00:00:00 2001 From: Helge Hess Date: Mon, 24 Apr 2017 13:47:23 +0200 Subject: [PATCH 5/5] Raspi --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d0b390c..5d00ccc 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ ![Swift3](https://img.shields.io/badge/swift-3-blue.svg) ![macOS](https://img.shields.io/badge/os-macOS-green.svg?style=flat) ![tuxOS](https://img.shields.io/badge/os-tuxOS-green.svg?style=flat) +![Raspiberry Pi](https://img.shields.io/badge/works%20on-Raspberry%20Pi-CA0B3D.svg?style=flat) ![Travis](https://travis-ci.org/AlwaysRightInstitute/mod_swift.svg?branch=develop) **mod_swift** is a technology demo which shows how to write native modules