Public | Automated Build

Last pushed: a year ago
Short Description
DEPRECATED - Please check ciandt/memcached repo for updated versions
Full Description

DEPRECATED - Please check ciandt/memcached repo for updated versions


CI&T Memcached Docker image(s)

These Docker image(s) intends to be a containerized Memcached solution for multiple purposes.

The source code is available under GPLv3 at Github in this link.

By utilizing Docker technologies, that already provides an easy way of spinning up new environments along with its dependecies. This image can speed up developers which different backgrounds and equipments to create quickly a new local environment allowing them to easily integrate in automated tests and deployment pipelines.

At this moment we have the following version(s).

Acquia

Our intent is to be a Docker container that mimics Memcached running on Acquia environment with the same version of softwares, packages, modules and its underlying operating system.

Acquia publishes a table with its platform infrastructure information on the link: https://docs.acquia.com/cloud/arch/tech-platform

These images will have the following name pattern: acquia-YYYY-MM-DD

Bundled software versions

These are the currently software versions bundled in the image(s) by tag.

  • acquia-latest OR acquia-2016-11-30
    • Ubuntu 12.04.5
    • Memcached 1.4.13
    • Dumb-init 1.2.0

Deprecated

  • acquia-2016-11-08
    • Ubuntu 12.04.5
    • Memcached 1.4.13
    • Dumb-init 1.2.0

Quick Start

Download the image

docker pull ciandtsoftware/memcached:acquia-latest

Run a container

docker run \
  --name myContainer \
  --detach \
  ciandtsoftware/memcached:acquia-latest

Check running containers

docker ps --all

Running standalone

If you just need the container there is a snippet that can help running in standalone mode.

# define variables
DOCKER_CONTAINER_NAME="myContainer"
DOCKER_IMAGE="ciandtsoftware/memcached:acquia-latest"

# run your container
docker run \
  --name "${DOCKER_CONTAINER_NAME}" \
  --detach \
  "${DOCKER_IMAGE}"

After run, you can inquiry Docker service and get the IP address of your newly running container named myContainer by using the following command:

docker inspect --format '{{ .NetworkSettings.IPAddress }} myContainer'

Let's suppose that the returned IP address was 172.17.0.2.
Since Memcached standard port is 11211, just open a terminal and try to get the stats: access:

echo "stats" | nc 172.17.0.2 11211

Apache Memcached stats result should be returned perfectly.


Running in Docker-Compose

Since a project is not going to use solely this container, it may need a Docker-Compose file.

Just to exercise, follow an example of this running with Apache/PHP and also both behind a Nginx proxy.

Create a new folder and fill with these 3 files and respective folders;

conf/php.local.env

## Nginx proxy configuration
# https://hub.docker.com/r/jwilder/nginx-proxy/
VIRTUAL_HOST=mySite.local

conf/memcached.local.env

## Nginx proxy configuration
# https://hub.docker.com/r/jwilder/nginx-proxy/
VIRTUAL_HOST=myMemcached.local
VIRTUAL_PORT=11211

docker-compose.yml

memcached:
  image: ciandtsoftware/memcached:acquia-latest
  container_name: memcached
  env_file: ../conf/memcached.local.env

php:
  image: ciandtsoftware/php:acquia-latest
  container_name: php
  env_file: ../conf/php.local.env
  links:
    - memcached

nginx:
  image: jwilder/nginx-proxy:latest
  container_name: nginx
  volumes:
    - /var/run/docker.sock:/tmp/docker.sock:ro
  ports:
    - "80:80"
    - "443:443"

Then just spin-up your Docker-Compose with the command:

docker-compose up -d

Inspect Nginx container IP address:

docker inspect \
        --format \
        "{{.NetworkSettings.Networks.bridge.IPAddress }}" \
        "nginx"

Use the IP address to update hosts file. Let's suppose that was 172.17.0.2.

Then, add the entries to /etc/hosts.

172.17.0.2 php.local
172.17.0.2 memcached.local

And now, try to access in terminal

echo "stats" | nc memcached.local 11211

Voilà!
Your project now have Memcached, Apache/PHP and Nginx up and running.
\o/


User Feedback

Issues

If you have problems, bugs, issues with or questions about this, please reach us in Github issues page.

Needless to say, please do a little research before posting.

Contributing

We gladly invite you to contribute fixes, new features, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.

Before you start to code, we recommend discussing your plans through a GitHub issue, especially for more ambitious contributions. This gives other contributors a chance to point you in the right direction, give you feedback on your design, and help you find out if someone else is working on the same thing.

Documentation

There are two parts of the documentation.

First, in the master branch, is this README.MD. It explains how this little scripts framework work and it is published on Github page.

Second, in each image version there is an additional README.MD file that explains how to use that specific Docker image version itself. Latest version is always the one seen on Docker Hub page.

We strongly encourage reading both!


Please feel free to drop a message in the comments section.

Happy coding, enjoy!!

"We develop people before we develop software" - Cesar Gon, CEO

Docker Pull Command
Owner
ciandtsoftware
Source Repository