jdeathe / centos-ssh-varnish Goto Github PK
View Code? Open in Web Editor NEWVarnish Cache - CentOS - Docker image build.
Home Page: https://hub.docker.com/r/jdeathe/centos-ssh-varnish/
License: Other
Varnish Cache - CentOS - Docker image build.
Home Page: https://hub.docker.com/r/jdeathe/centos-ssh-varnish/
License: Other
The optional configuration volume is not used in the default run example but is necessary to allow config changes due to the complexity of the .vlc files in this container setup.
Note that the boot2docker host virtual machine only maps the users' home directory so when running docker commands via a docker host VM (proxy) the only directories that can be mapped from the host machine (The Mac) to the Docker host are those within the users' home directory.
If the content changes between http and https protocols then the configuration needs to set the vcl_hash
hash_data
accordingly.
The PHP Hello, world! app requires this so it would make sense to enable it by default.
--privileged
to allow the service to run correctly.Patch back #98 to centos-6 branch
Error message:
/usr/bin/env: expect -f: No such file or directory
Add option to enable access logging.
Add environment variable: VARNISH_AUTOSTART_VARNISHNCSA
.
Update to use Varnish 4.0 or 4.1 since 3.0 is now unsupported.
Several scripts use the syntax:
local readonly variable="value"
This is incorrect and should be replaced with:
local -r variable="value"
http://varnish-cache.org/releases/
Package sources have been relocated to Packagecloud.io
http://varnish-cache.org/releases/install_redhat.html#official-packages-of-4-1
https://packagecloud.io/varnishcache/varnish41/install#manual
Currently the image uses varnish-4.1.5-1.el6
Update to the latest varnish-4.1.7-1.el6
The scmi script is added to the image from the upstream source image jdeathe/centos-ssh
Having it in the repository means it needs to be maintained but is never added to this image from the Dockerfile build.
It's possible to include a VCL into the main configuration. Investigate splitting out the backend configuration.
The current method of testing the parameters set is very crude. The logs are scanned for the parameters set via the varnishd-wrapper script. This doesn't verify against the actual running configuration so a better method would be to query the settings using the varnishadm command varnsishadm param.show
.
CentOS version has changed from 6.6 to 6.7.
Add a docker-compose configuration file to demonstrate usage with the jdeathe/centos-ssh-apache-php
backend.
jdeathe/centos-ssh-apache-php:3.0.1
fixes the "Session info", allowing the session.name
to be defined by the operator.
Add the necessary install/uninstall labels and template systemd unit-file necessary to work with the SCMI embedded installer.
Support for the following was removed in release 1.3.0 however the environment variables where not removed from the Dockerfile.
VARNISH_ADMIN_LISTEN_ADDRESS
VARNISH_ADMIN_LISTEN_PORT
VARNISH_LISTEN_ADDRESS
VARNISH_LISTEN_PORT
VARNISH_PIDFILE
VARNISH_SECRET_FILE
https://github.com/jdeathe/centos-ssh-varnish/blob/1.3.0/Dockerfile#L56
Adding PROXY protocol (from HAProxy) should allow the correct client/server IP address to be populated when handling TLS terminated traffic on port 8443.
Ref:
Due to the way docker-compose sets names for services I changed the naming of the backend hosts to use the form httpd_1
, httpd_2
etc instead of backend-1
, backend-2
etc however this results in invalid hostname requests.
[Wed Jan 25 21:37:10.373213 2017] [core:debug] [pid 122] vhost.c(796): [client 172.172.1.7:33498] AH02415: [strict] Invalid host name 'httpd_1', problem near: _1
[Wed Jan 25 21:37:10.373467 2017] [core:debug] [pid 122] vhost.c(891): [client 172.172.1.7:33498] AH00550: Client sent malformed Host header: httpd_1
[Wed Jan 25 21:37:10.373478 2017] [core:debug] [pid 122] protocol.c(1385): [client 172.172.1.7:33498] AH00569: client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /
[Wed Jan 25 21:37:10.373491 2017] [headers:debug] [pid 122] mod_headers.c(900): AH01503: headers: ap_headers_error_filter()
Missing SHPEC_ROOT := test/shpec
from environment.mk
Although there's no sensitive values within the configuration file currently - consideration should be given to allowing operators to use Docker secrets/config to define the configuration file content via VARNISH_VCL_CONF
.
Make the default work with the Kitematic boot2docker based VM that comes with Docker Tools. The Docker VM uses IP 192.168.99.100.
Add feature to run.conf and run.sh to use an alternative Docker host VM such as CoreOS in a 3 node cluster.
Make a start with:
Before releasing 1.3.2
the existing image tags need to be pushed with semantic version numbers.
Upgrade from varnish-4.1.3-1.el6
to varnish-4.1.5-1.el6
.
Linked backend containers update /etc/hosts so should be able to avoid the requirement of using --add-host backend-1:DOCKER_HOST_IP
This would require a centos-ssh-varnish container on every Docker host but don't feel that's an issue.
Add the example cluster configuration to the Docker image to allow the VARNISH_VCL_CONF to be used to set either /etc/varnish/docker-default.vcl or /etc/varnish/docker-cluster.vcl
Update source image to 1.8.3 tag.
Patch back #89 to centos-6 branch
Ref: https://docs.docker.com/engine/deprecated/
Deprecated In Release: v1.13.0
MAINTAINER
was an early very limited form ofLABEL
which should be used instead.
Latest tag is 1.4.0 which will also bring this container up to CentOS 6.7
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.