Use this image to start your own varnish server fast and easy.
Thanks to Gitlab-CI this image is pushed weekly and creates new tags if there are new versions available.
For recent tags check dockerhub or quay.
There are several versions of Varnish available.
This repository provides very fine grained tags in order to fit your needs.
The latest
-tag always points to the "fresh"- , while the stable
-tag points to the "supported" releases.
7.0
,7.0.0
,latest
6.6
,6.6.1
6.5
(EOL
)6.4
(EOL
)6.3
(EOL
)6.2
,6.2.0
(EOL
)6.1
,6.1.1
(EOL
)6.0
,6.0.0
,stable
5.2
,5.2.1
(EOL
)4.1
4.1.9
(EOL
)3.0
,3.0.5
(EOL
)
You can either run this image with or without a vcl-file.
If you don't provide a vcl, the Varnish-proxy uses a builtin default configuration.
The vcl-file is expected under the following path: /etc/varnish/default.vcl
You can change this path by using the env VARNISH_VCL_PATH
:
VARNISH_VCL_PATH=/custom/path/varnish.vcl
In case you want to run the varnishd without a vcl-file, you have to configure your backend manually.
This is done by using the env VARNISH_VCL_DEFAULT_BACKEND
:
VARNISH_VCL_DEFAULT_BACKEND=127.0.0.1:80
You can also modify the maximum cache size by env VARNISH_RAM_STORAGE
, default is 128M
: VARNISH_RAM_STORAGE=1G
In case you want to feed the varnishd with custom options, use env VARNISHD_OPTS
:
VARNISHD_OPTS="-t 36000"
The following options are set by default:
-a :${VARNISH_PORT} -s default=malloc,${VARNISH_RAM_STORAGE}
If you want to overwrite those default-options - for example in order to store cache in a file instead of ram - use env VARNISHD_DEFAULT_OPTS
:
VARNISHD_DEFAULT_OPTS=-a :${VARNISH_PORT} -s file,/tmp/varnish_storage.bin,50%
By default, the varnishd
runs in foreground and blocks stdout
. Therefore there will be no logs available with docker logs
.
If you want varnishlog to stdout
you can use the env VARNISHLOG
:
VARNISHLOG="true"
It is also possible to pass additional options to varnishlog
by using env VARNISHLOG_OPTS
:
VARNISHLOG_OPTS="-g session"
$ docker run -d -v /host/path/varnish.vcl:/etc/varnish/default.vcl hermsi/alpine-varnish:stable
$ docker run -d -v /host/path/varnish.vcl:/etc/varnish/default.vcl -e VARNISH_RAM_STORAGE=512M hermsi/alpine-varnish:stable
$ docker run -d -v /host/path/varnish.vcl:/etc/varnish/default.vcl -e VARNISHLOG=true hermsi/alpine-varnish:stable
version: '3'
services:
varnish:
image: hermsi/alpine-varnish
volumes:
- ./varnish.vcl:/etc/varnish/default.vcl
environment:
VARNISH_PORT: 8080
VARNISH_RAM_STORAGE: 1G
VARNISH_VCL_PATH: /etc/varnish/default.vcl
VARNISHD_ADDITIONAL_OPTS: -t 36000
VARNISHLOG: 'true'
VARNISHLOG_OPTS: -g sessiong