From 5ca8e315af01e76381d499a2928f7f47a6787f49 Mon Sep 17 00:00:00 2001 From: Teoh Han Hui Date: Tue, 29 May 2018 19:04:15 +0200 Subject: [PATCH] Add varnish --- varnish/README-short.txt | 1 + varnish/content.md | 94 +++++++++++++++++++++++++++++++++++++++ varnish/github-repo | 1 + varnish/license.md | 1 + varnish/logo.png | Bin 0 -> 8334 bytes varnish/maintainer.md | 1 + 6 files changed, 98 insertions(+) create mode 100644 varnish/README-short.txt create mode 100644 varnish/content.md create mode 100644 varnish/github-repo create mode 100644 varnish/license.md create mode 100644 varnish/logo.png create mode 100644 varnish/maintainer.md diff --git a/varnish/README-short.txt b/varnish/README-short.txt new file mode 100644 index 000000000..d724dd29c --- /dev/null +++ b/varnish/README-short.txt @@ -0,0 +1 @@ +Varnish is an HTTP accelerator designed for content-heavy dynamic web sites as well as APIs. diff --git a/varnish/content.md b/varnish/content.md new file mode 100644 index 000000000..169f68b30 --- /dev/null +++ b/varnish/content.md @@ -0,0 +1,94 @@ +# What is Varnish? + +Varnish is an HTTP accelerator designed for content-heavy dynamic web sites as well as APIs. In contrast to other web accelerators, such as Squid, which began life as a client-side cache, or Apache and nginx, which are primarily origin servers, Varnish was designed as an HTTP accelerator. Varnish is focused exclusively on HTTP, unlike other proxy servers that often support FTP, SMTP and other network protocols. + +> [wikipedia.org/wiki/Varnish_(software)](https://en.wikipedia.org/wiki/Varnish_(software)) + +%%LOGO%% + +# How to use this image. + +## Basic usage + +Create a `default.vcl` file: + +```vcl +vcl 4.0; + +backend default { + .host = "www.nytimes.com"; + .port = "80"; +} +``` + +Then run: + +```console +$ docker run --name my-running-varnish -v /path/to/default.vcl:/usr/local/etc/varnish/default.vcl:ro --tmpfs /usr/local/var/varnish:exec -d %%IMAGE%% +``` + +Alternatively, a simple `Dockerfile` can be used to generate a new image that includes the necessary `default.vcl` (which is a much cleaner solution than the bind mount above): + +```dockerfile +FROM %%IMAGE%%:6.2 + +COPY default.vcl /usr/local/etc/varnish/ +``` + +Place this file in the same directory as your `default.vcl`, run `docker build -t my-varnish .`, then start your container: + +```console +$ docker run --name my-running-varnish --tmpfs /usr/local/var/varnish:exec -d my-varnish +``` + +### Exposing the port + +```console +$ docker run --name my-running-varnish --tmpfs /usr/local/var/varnish:exec -d -p 8080:80 my-varnish +``` + +Then you can hit `http://localhost:8080` or `http://host-ip:8080` in your browser. + +# How to install VMODs (Varnish Modules) + +[VMODs](https://varnish-cache.org/vmods/) are extensions written for Varnish Cache. + +Install VMODs in your Varnish project's `Dockerfile`. For example, to install the [vmod-querystring](https://github.com/Dridi/libvmod-querystring) module: + +```dockerfile +FROM %%IMAGE%%:6.2 + +# install vmod-querystring +ENV VMOD_QUERYSTRING_VERSION 1.0.5 +RUN set -eux; \ + \ + fetchDeps=' \ + ca-certificates \ + wget \ + '; \ + buildDeps=" \ + $VMOD_BUILD_DEPS \ + dpkg-dev \ + "; \ + apt-get update; \ + apt-get install -y --no-install-recommends $fetchDeps $buildDeps; \ + rm -rf /var/lib/apt/lists/*; \ + \ + wget -O vmod-querystring.tar.gz "https://github.com/Dridi/libvmod-querystring/releases/download/v$VMOD_QUERYSTRING_VERSION/vmod-querystring-$VMOD_QUERYSTRING_VERSION.tar.gz"; \ + mkdir -p /usr/local/src/vmod-querystring; \ + tar -zxf vmod-querystring.tar.gz -C /usr/local/src/vmod-querystring --strip-components=1; \ + rm vmod-querystring.tar.gz; \ + \ + cd /usr/local/src/vmod-querystring; \ + gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; \ + ./configure \ + --build="$gnuArch" \ + ; \ + make -j "$(nproc)"; \ + make install; \ + \ + cd /; \ + rm -rf /usr/local/src/vmod-querystring; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false $fetchDeps $buildDeps +``` diff --git a/varnish/github-repo b/varnish/github-repo new file mode 100644 index 000000000..91f15e7c9 --- /dev/null +++ b/varnish/github-repo @@ -0,0 +1 @@ +https://github.com/coopTilleuls/docker-varnish diff --git a/varnish/license.md b/varnish/license.md new file mode 100644 index 000000000..5a79a243b --- /dev/null +++ b/varnish/license.md @@ -0,0 +1 @@ +View [license information](https://github.com/varnishcache/varnish-cache/blob/master/LICENSE) for the software contained in this image. diff --git a/varnish/logo.png b/varnish/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..441709d73dd8c4983fba3fa2f6d970bbdde0b3a3 GIT binary patch literal 8334 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 literal 0 HcmV?d00001 diff --git a/varnish/maintainer.md b/varnish/maintainer.md new file mode 100644 index 000000000..09f5f1e47 --- /dev/null +++ b/varnish/maintainer.md @@ -0,0 +1 @@ +[the Varnish Docker Community](%%GITHUB-REPO%%)