Skip to content

softasap/sa-nginx-container

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sa-nginx-container

Build Status License: MIT Ansible-Container friendly

Helper role to be executed with ansible-container aiming to build nginx based service for your application. Role is based on sa-nginx role, your docker image might be any of ubuntu (14.04 LTS / 16.04 LTS), CentOS 7+, Fedora 25+, Alpine (3.4. 3.5 +)

Role is best used in conjuntion with previously applied https://github.com/softasap/sa-container-bootstrap role. Please check sa-container-bootstrap role for options.

Role can be used on a standalone basis, including dumb-init support out of the box.

Variables

User inside container used to run

container_user: nginx 

Container's nginx user id

container_uid: 1000 

Container init system used in base image. Can be unset (you are using smth on your own control)

container_init: "dumb-init" # phusion-init dumb_init_version: "1.2.0" 

Directory to place nginx pid

nginx_pid_dir: /run/nginx 

Interoperability with other containers - where to place static content, and which directories need to be rsynced inside container.

nginx_static_dir: /static # directories to be copied inside docker container nginx_asset_dirs: [] #directories already mapped inside docker container during build nginx_container_asset_dirs: [] 

In case if you don't provide your own nginx conf, container will use sa-nginx scheme: site configs to be placed to /etc/nginx/sites-enabled, default nginx.conf might be adjusted by specifying list of corrections in nginx_conf_properties

nginx_conf_properties: - { regexp: "^daemon *", line: "daemon off;", insertbefore: "BOF" } - { regexp: "^worker_processes *", line: "worker_processes auto;", insertbefore: "BOF" } - { regexp: "^pid *", line: "pid {{nginx_pid_dir}}/nginx.pid;", insertbefore: "BOF" } 

Code in action

container.yml

we install nginx container role, and configure our application by applying some project specific role in order to provide needed nginx tuning.

 version: "2" settings: conductor_base: ubuntu:16.04 volumes: - temp-space:/tmp # Used to copy static content between containers services: www: from: ubuntu:16.04 container_name: www roles: - { role: "softasap.sa-nginx-container" } - { role: "../standalone-fallback" } volumes: temp-space: docker: {} 

See box-example for the standalone working example. It will configure application image that will display 'OK' on connect - check it out:

Usage with sa-container-bootstrap

2BD

Temporary hints

(1)

at a moment ansible-container is highly under development. You might spot issues, that are fixed in develop branch only.

In that case you might need to install ansible-container from source, i.e.

git clone https://github.com/ansible/ansible-container.git cd ansible-container git checkout develop pip install -e .[docker,openshift]

If for some reason install is messed (manual packages updates, removals, etc) - try pip install with --ignore-installed flag.

later, when issue fix is released - to uninstall package installed in that way from source:

At {virtualenv}/lib/python2.7/site-packages/ (if not using virtualenv then {system_dir, like /usr/local}/lib/python2.7/dist-packages/)

remove the egg file (e.g. ansible-container.egg-link) if there is any;

from file easy-install.pth, remove the corresponding line (it should be a path to the source directory or of an egg file).

(2)

When using box-example, pay attention to container.yml, in particular, conductor_base should be derived from the same distribution as you're building your target containers with, check list of currently supported base systems:

(3) If your system services are derived from different OS base images, than ... ?

Copyright and license

Code licensed under the [BSD 3 clause] (https://opensource.org/licenses/BSD-3-Clause) or the [MIT License] (http://opensource.org/licenses/MIT).

Subscribe for roles updates at [FB] (https://www.facebook.com/SoftAsap/)

Join gitter discussion channel at Gitter