From 46b0ab79b1b8205f4f6726d2ea2b74b92827f0da Mon Sep 17 00:00:00 2001 From: puneetse <22071208+puneetse@users.noreply.github.com> Date: Thu, 22 Aug 2019 08:11:27 -0700 Subject: [PATCH] Update nginx README.md --- nginx/README.md | 152 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 119 insertions(+), 33 deletions(-) diff --git a/nginx/README.md b/nginx/README.md index c8ac42d..ae2ac75 100644 --- a/nginx/README.md +++ b/nginx/README.md @@ -1,43 +1,129 @@ -# Clear Linux Based Container: Nginx Service +# Clear Linux* OS `nginx` container image -This container provides a nginx web service, which is same as [the one](https://hub.docker.com/_/nginx) from dockerhub in functionality with optimized libraries and secure content from Clear Linux*. It can be executed by docker tool directly or deployed on any docker orchrestration like kubernetes. + +## What is this image?: -## Build Container -``` -docker build -t clearlinux/nginx . -``` -Or just pull it from Dockerhub +`clearlinux/nginx` is a Docker image with `nginx` running on top of the +[official clearlinux base image](https://hub.docker.com/_/clearlinux). -``` -docker pull clearlinux/nginx -``` -Default build args in Docker are on: https://docs.docker.com/engine/reference/builder/#arg, extra Build ARGs: + +> [Nginx](https://www.nginx.com/) (pronounced "engine-x") is an open source +> reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well +> as a load balancer, HTTP cache, and a web server (origin server). -- ``swupd_args`` Specifies [SWUPD](https://github.com/clearlinux/swupd-client/blob/master/docs/swupd.1.rst#options) flags +For other Clear Linux* OS +based container images, see: https://hub.docker.com/u/clearlinux -## Run with Docker Tool -Quick start container: -``` -docker run -p 80:80 -v /some/content:/var/www/html -d clearlinux/nginx -``` -_Note: The default root path is **/var/www/html** and default configuration path is **/etc/nginx/**._ +## Why use a clearlinux based image? -_See ``How to use this image`` section of the official nginx image [page](https://hub.docker.com/_/nginx)_. + +> [Clear Linux* OS](https://clearlinux.org/) is an open source, rolling release +> Linux distribution optimized for performance and security, from the Cloud to +> the Edge, designed for customization, and manageability. -## Deploy on Kubernetes Cluster -This container could be deployed on any kubernetes compatible cloud native cluster such as minikube or CSP's platform. Please refer [here](https://kubernetes.io/docs/setup/learning-environment/minikube/) to setup minikube. +Clear Linux* OS based container images use: +* Optimized libraries that are compiled with latest compiler versions and + flags. +* Software packages that follow upstream source closely and update frequently. +* An aggressive security model and best practices for CVE patching. +* A multi-staged build approach to keep a reduced container image size. +* The same container syntax as the official images to make getting started + easy. -Following template files as kubernete YAML registries for operator's reference: +To learn more about Clear Linux* OS, visit: https://clearlinux.org. -* [nginx-service-deployment-simple.yaml](nginx-service-deployment-simple.yaml): use default configurations to create nginx service on kubernetes cluster -* [nginx-service-deployment-customize-conf.yaml](nginx-service-deployment-customize-conf.yaml): demostrate how to use customized config file to replace default one. -* [nginx-service-deployment-persistent-volume.yaml](nginx-service-deployment-persistent-volume.yaml): demostrate how to manage web server materials on persistent storage. + +## Deployment: -Quick deployment for test: -``` -kubectl apply -f nginx-service-deployment-.yaml -``` -On minikube cluster, to visit demo web service: -``` -minikube service clear-nginx-service -``` \ No newline at end of file +### Deploy with Docker +The easiest way to get started with this image is by simply pulling it from +Docker Hub. + +*Note: This container uses the same syntax as the [official nginx +image](https://hub.docker.com/_/nginx). The default root path is +`/var/www/html` and default configuration path is `/etc/nginx/`.* + + +1. Pull the image from Docker Hub: + ``` + docker pull clearlinux/nginx + ``` + +2. Start a container using the examples below: + + * Start with persistent volume for web content: + ``` + docker run -p 80:80 -v /some/content:/var/www/html -d clearlinux/nginx + ``` + + * Start with an alternative nginx configuration file: + ``` + docker run -p 80:80 -v /host/path/nginx.conf:/etc/nginx/nginx.conf -d clearlinux/nginx + ``` + + +### Deploy with Kubernetes +This image can also be deployed on a Kubernetes cluster, such as +[minikube](https://kubernetes.io/docs/setup/learning-environment/minikube/).The +following example YAML template files are provided in the repository as +reference for Kubernetes deployment: + + * [`nginx-service-deployment-simple.yaml`](nginx-service-deployment-simple.yaml): + example using default configuration to create a basic nginx service. + * [`nginx-service-deployment-customize-conf.yaml`](nginx-service-deployment-customize-conf.yaml): + example using a customized nginx.conf configuration file to replace + default one. + * [`nginx-service-deployment-persistent-volume.yaml`](nginx-service-deployment-persistent-volume.yaml): + example using persistent storage for web server content. + +To deploy the image on a Kubernetes cluster: + +1. Review the contents of the template file and edit appropriately for your + needs. + +2. Apply the YAML template configuration. + ``` + kubectl apply -f nginx-service-deployment-.yaml + ``` + +3. Start the service. + ``` + minikube service clear-nginx-service + ``` + + +## Build and modify: + +The Dockerfiles for all Clear Linux* OS based container images are available at +https://github.com/clearlinux/dockerfiles. These can be used to build and +modify the container images. + +1. Clone the clearlinux/dockerfiles repository. + ``` + git clone https://github.com/clearlinux/dockerfiles.git + ``` + +2. Change to the directory of the application: + ``` + cd nginx/ + ``` + +3. Build the container image: + ``` + docker build -t clearlinux/nginx . + ``` + + Refer to the Docker documentation for [default build + arguments](https://docs.docker.com/engine/reference/builder/#arg). + Additionally: + + - `swupd_args` - specifies arguments to pass to the Clear Linux* OS software + manager. See the [swupd man + pages](https://github.com/clearlinux/swupd-client/blob/master/docs/swupd.1.rst#options) + for more information. + + +## Licenses + +All licenses for the Clear Linux* Project and distributed software can be found +at https://clearlinux.org/terms-and-policies \ No newline at end of file