From 2823bde8e398dc6cc50b28edb6f3446f227cb275 Mon Sep 17 00:00:00 2001 From: startxfr Date: Sat, 5 Dec 2015 03:47:33 +0100 Subject: improving unoconv README.md --- Services/memcache/README.md | 3 - Services/nodejs/README.md | 2 +- Services/ooconv/README.md | 191 +++++++++++++++++++++++++++++--------------- Services/php/README.md | 166 +++++++++++++++++++++++++++++++------- 4 files changed, 263 insertions(+), 99 deletions(-) diff --git a/Services/memcache/README.md b/Services/memcache/README.md index fd6eb40..66f3b17 100644 --- a/Services/memcache/README.md +++ b/Services/memcache/README.md @@ -36,11 +36,8 @@ service: CONTAINER_TYPE: "service" CONTAINER_SERVICE: "memcache" CONTAINER_INSTANCE: "service-memcache" - SERVER_NAME: "localhost" - DOC_ROOT: "/data/memcache" volumes: - "/tmp/container/logs/memcache:/data/logs/memcache" - - "/tmp/container/memcache:/data/memcache" ``` ## Docker-compose in various situations diff --git a/Services/nodejs/README.md b/Services/nodejs/README.md index 5a2afee..ca782e6 100644 --- a/Services/nodejs/README.md +++ b/Services/nodejs/README.md @@ -92,10 +92,10 @@ CMD ["/bin/run.sh"] | Variable | Type | Mandatory | Description | |---------------------------|----------|-----------|--------------------------------------------------------------------------| +| APP_MAIN | `string` | `yes` | Path to the application entrypoint. default is /data/nodejs/app.js | CONTAINER_INSTANCE | `string` | `yes` | Container name. Should be uning to get fine grained log and application reporting | CONTAINER_TYPE | `string` | `no` | Container family (os, service, application. could be enhanced | CONTAINER_SERVICE | `string` | `no` | Define the type of service or application provided -| APP_MAIN | `string` | `no` | Path to the application entrypoint. default is /data/nodejs/app.js | LOG_PATH | `auto` | `auto` | default set to /data/logs/nodejs and used as a volume mountpoint | APP_PATH | `auto` | `auto` | default set to /data/nodejs and used as a volume mountpoint | TMP_APP_PATH | `auto` | `auto` | default set to /tmp/nodejs and used to hold app content and copy to $APP_PATH on startup (if $APP_PATH is empty) diff --git a/Services/ooconv/README.md b/Services/ooconv/README.md index ebd62ee..ae0f256 100644 --- a/Services/ooconv/README.md +++ b/Services/ooconv/README.md @@ -1,64 +1,127 @@ -# STARTX Services docker-images : NodeJS Server - -Container running ooconv daemon under a fedora server - -## Running from docker registry - - docker run -d -p 2002:2002 --name="ooconv" startx/sv-ooconv - # when used with a volume container (run data container, then run service) - docker run -d -v /tmp/ootmp --name ooconv-data startx/sv-ooconv echo "Data container for ooconv" - docker run -d -p 2002:2002 --volumes-from ooconv-data --name="ooconv" startx/sv-ooconv - when linked to another container - docker run -d --name="ooconv" startx/sv-ooconv - docker run -d -p 80:80 --name="php" --link ooconv:ooconv startx/sv-php - -## Build and run from local Dockerfile -### Building docker image -Copy sources in your docker host - - mkdir startx-docker-images; - cd startx-docker-images; - git clone https://github.com/startxfr/docker-images.git . - -Build the container - - docker build -t sv-ooconv Services/ooconv/ - -### Running local image - - docker run -d -p 2002:2002 --name="ooconv" sv-ooconv - -## Accessing server -access to the running webserver - - firefox http://localhost:2002 - -access to the container itself - - docker exec -it ooconv /bin/bash - -## Related Resources -* [Sources files](https://github.com/startxfr/docker-images/tree/master/Services/ooconv) -* [Github STARTX profile](https://github.com/startxfr/docker-images) -* [Docker registry for this container](https://registry.hub.docker.com/u/startx/sv-ooconv/) -* [Docker registry for Fedora](https://registry.hub.docker.com/u/fedora/) - -STARTX docker-images - OOConv -============================= - -**Description** -Based on the docker default centos Dockerfile - -**Usage** - - docker run --name="test-ooconv" startx/sv-ooconv unoconv - docker run -d -p 2002:2002 --name="test-ooconv" startx/sv-ooconv - - -**Converting documents** - - // Start the server - unoconv --listener --server 1.2.3.4 --port 2002 - - // Use the client to connect to the convertion server - unoconv --server 1.2.3.4 --port 2002 + + +# Docker OS Images : OOCONV + +Simple and lightweight (450Mo) container used to document convertion and manipulation tools +Run [libreoffice](https://www.libreoffice.org/) as a daemon using [dagwieers unoconv](https://github.com/dagwieers/unoconv) under a container based on [startx/fedora container](https://hub.docker.com/r/startx/fedora) + +| [![Build Status](https://travis-ci.org/startxfr/docker-images.svg)](https://travis-ci.org/startxfr/docker-images) | [Dockerhub Registry](https://hub.docker.com/r/startx/sv-ooconv/) | [Sources](https://github.com/startxfr/docker-images/Services/ooconv) | [STARTX Profile](https://github.com/startxfr) | +|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|----------------------------------------------------------------------------------|-----------------------------------------------| + +## Available flavours + +* `:latest` : Fedora core 23 + OOConv +* `:fc23` : Fedora core 23 + OOConv +* `:fc22` : Fedora core 22 + OOConv +* `:fc21` : Fedora core 21 + OOConv +* `:centos7` : CentOS 7 + OOConv +* `:centos6` : Centos 6 + OOConv + +## Running from dockerhub registry + +* with `docker` you can run `docker run -it --name="sv-ooconv" startx/sv-ooconv` from any docker host +* with `docker-compose` you can create a docker-compose.yml file with the following content +``` +service: + image: startx/sv-ooconv:latest + container_name: "sv-ooconv" + environment: + CONTAINER_TYPE: "service" + CONTAINER_SERVICE: "ooconv" + CONTAINER_INSTANCE: "service-ooconv" + volumes: + - "/tmp/container/logs/ooconv:/data/logs/ooconv" +``` + +## Docker-compose in various situations + +* sample docker-compose.yml linked to host port 1000 +``` +service: + image: startx/sv-ooconv:latest + container_name: "sv-ooconv" + environment: + CONTAINER_INSTANCE: "service-ooconv" + ports: + - "1000:2002" +``` +* sample docker-compose.yml with port exposed only to linked services +``` +service: + image: startx/sv-ooconv:latest + container_name: "sv-ooconv" + environment: + CONTAINER_INSTANCE: "service-ooconv" + expose: + - "2002" +``` + +## Using this image in your own container + +You can use this Dockerfile template to start a new personalized container based on this container. Create a file named Dockerfile in your project directory and copy this content inside. See [docker guide](http://docs.docker.com/engine/reference/builder/) for instructions on how to use this file. + ``` +FROM startx/sv-ooconv:latest +#... your container specifications +CMD ["/bin/run.sh"] +``` + +## Environment variable + +| Variable | Type | Mandatory | Description | +|---------------------------|----------|-----------|--------------------------------------------------------------------------| +| CONTAINER_INSTANCE | `string` | `yes` | Container name. Should be uning to get fine grained log and application reporting +| CONTAINER_TYPE | `string` | `no` | Container family (os, service, application. could be enhanced +| CONTAINER_SERVICE | `string` | `no` | Define the type of service or application provided +| HOSTNAME | `auto` | `auto` | Container unique id automatically assigned by docker daemon at startup +| LOG_PATH | `auto` | `auto` | default set to /data/logs/ooconv and used as a volume mountpoint + +## Exposed port + +| Port | Description | +|-------|--------------------------------------------------------------------------| +| 2002 | network port used to communicate with unoconv service + +## Exposed volumes + +| Container directory | Description | +|----------------------|--------------------------------------------------------------------------| +| /data/logs/ooconv | log directory used to record container and ooconv logs + +## Testing the service + +access to the running unoconv service with unoconv client `unoconv -s localhost -p 2002`. Change port and hostname according to your current configuration + +## For advanced users + +You want to use this container and code to build and create locally this container, follow theses instructions. + +This section will help you if you want to : +* Get latest version of this service container +* Enhance container content by adding instruction in Dockefile before build step + +You must have a working environment with the source code of this repository. Read and follow [how to setup your working environment](https://github.com/startxfr/docker-images#setup-your-working-environment-mandatory) to get a working directory. The following instructions assume you are at the top level of your working directory. + +### Build & run a container using `docker` + +1. Jump into the container directory with `cd Services/ooconv` +2. Build the container using `docker build -t sv-ooconv .` +3. Run this container + 1. Interactively with `docker run -p 2002:2002 -v /data/logs/ooconv -it sv-ooconv`. If you add a second parameter (like `/bin/bash`) to will run this command instead of the default entrypoint. Usefull to interact with this container (ex: `/bin/bash`, `/bin/ps -a`, `/bin/df -h`,...) + 2. As a daemon with `docker run -p 2002:2002 -v /data/logs/ooconv -d sv-ooconv` + + +### Build & run a container using `docker-compose` + +1. Jump into the container directory with `cd Services/ooconv` +2. Run this container + 1. Interactively with `docker-compose up` Startup logs appears and escaping this command stop the container + 2. As a daemon with `docker-compose up -d`. Container startup logs can be read using `docker-compose logs` + +If you experience trouble with port already used, edit docker-compose.yml file and change port mapping diff --git a/Services/php/README.md b/Services/php/README.md index 7ceef27..858a923 100644 --- a/Services/php/README.md +++ b/Services/php/README.md @@ -1,46 +1,150 @@ -# STARTX Services docker-images : PHP Webserver + -Container running apache + php daemon under a fedora server +# Docker OS Images : APACHE -## Running from docker registry +Simple and lightweight (120Mo) container used to deliver static http content include all apache's modules but no external languages engines (like php). For dynamic content, you should use our [sv-php service container](https://hub.docker.com/r/startx/sv-php) +Run [apache httpd daemon](https://httpd.apache.org/) under a container based on [startx/fedora container](https://hub.docker.com/r/startx/fedora) - docker run -d -p 80:80 --name="php" startx/sv-php - # when used with a volume container (run data container, then run service) - docker run -d -v /var/www/html -v /var/logs/apache_php --name php-data startx/sv-php echo "Data container for php webserver" - docker run -d -p 80:80 --volumes-from php-data --name="php" startx/sv-php - when linked to another container - docker run -d --name="mongo" startx/sv-mongo - docker run -d -p 80:80 --name="php" --link mongo:mongo startx/sv-php +| [![Build Status](https://travis-ci.org/startxfr/docker-images.svg)](https://travis-ci.org/startxfr/docker-images) | [Dockerhub Registry](https://hub.docker.com/r/startx/sv-apache/) | [Sources](https://github.com/startxfr/docker-images/Services/apache) | [STARTX Profile](https://github.com/startxfr) | +|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|----------------------------------------------------------------------------------|-----------------------------------------------| -## Build and run from local Dockerfile -### Building docker image -Copy sources in your docker host +## Available flavours - mkdir startx-docker-images; - cd startx-docker-images; - git clone https://github.com/startxfr/docker-images.git . +* `:latest` : Fedora core 23 + Apache +* `:fc23` : Fedora core 23 + Apache +* `:fc22` : Fedora core 22 + Apache +* `:fc21` : Fedora core 21 + Apache +* `:centos7` : CentOS 7 + Apache +* `:centos6` : Centos 6 + Apache -Change configuration and personalize your base image. you can change file httpd.conf if you want to add some config into http server. File php.ini will be added into php init scripts and executed when server start. +## Running from dockerhub registry -Build the container +* with `docker` you can run `docker run -it --name="sv-apache" startx/sv-apache` from any docker host +* with `docker-compose` you can create a docker-compose.yml file with the following content +``` +service: + image: startx/sv-apache:latest + container_name: "sv-apache" + environment: + CONTAINER_TYPE: "service" + CONTAINER_SERVICE: "apache" + CONTAINER_INSTANCE: "service-apache" + SERVER_NAME: "localhost" + DOC_ROOT: "/data/apache" + volumes: + - "/tmp/container/logs/apache:/data/logs/apache" + - "/tmp/container/apache:/data/apache" +``` - docker build -t sv-php Services/php/ +## Docker-compose in various situations -### Running local image +* sample docker-compose.yml linked to host port 1000 +``` +service: + image: startx/sv-apache:latest + container_name: "sv-apache" + environment: + CONTAINER_INSTANCE: "service-apache" + ports: + - "1000:80" +``` +* sample docker-compose.yml with port exposed only to linked services +``` +service: + image: startx/sv-apache:latest + container_name: "sv-apache" + environment: + CONTAINER_INSTANCE: "service-apache" + expose: + - "80" +``` +* sample docker-compose.yml using data container +``` +data: + image: startx/fedora:latest + container_name: "sv-apache-data" + environment: + CONTAINER_INSTANCE: "service-apache-data" +service: + image: startx/sv-apache:latest + container_name: "sv-apache" + environment: + CONTAINER_INSTANCE: "service-apache" + volume_from: + - data:rw +``` - docker run -d -p 80:80 --name="php" sv-php +## Using this image in your own container -## Accessing server -access to the running webserver +You can use this Dockerfile template to start a new personalized container based on this container. Create a file named Dockerfile in your project directory and copy this content inside. See [docker guide](http://docs.docker.com/engine/reference/builder/) for instructions on how to use this file. + ``` +FROM startx/sv-apache:latest +#... your container specifications +CMD ["/bin/run.sh"] +``` - firefox http://localhost:80 +## Environment variable -access to the container itself +| Variable | Type | Mandatory | Description | +|---------------------------|----------|-----------|--------------------------------------------------------------------------| +| CONTAINER_INSTANCE | `string` | `yes` | Container name. Should be uning to get fine grained log and application reporting +| CONTAINER_TYPE | `string` | `no` | Container family (os, service, application. could be enhanced +| CONTAINER_SERVICE | `string` | `no` | Define the type of service or application provided +| SERVER_NAME | `string` | `no` | Server name for this container. If no name localhost will be assigned +| HOSTNAME | `auto` | `auto` | Container unique id automatically assigned by docker daemon at startup +| DOC_ROOT | `auto` | `auto` | document root, will use the $APP_PATH variable +| LOG_PATH | `auto` | `auto` | default set to /data/logs/apache and used as a volume mountpoint +| APP_PATH | `auto` | `auto` | default set to /data/apache and used as a volume mountpoint - docker exec -it php /bin/bash +## Exposed port -## Related Resources -* [Sources files](https://github.com/startxfr/docker-images/tree/master/Services/php) -* [Github STARTX profile](https://github.com/startxfr/docker-images) -* [Docker registry for this container](https://registry.hub.docker.com/u/startx/sv-php/) -* [Docker registry for Fedora](https://registry.hub.docker.com/u/fedora/) \ No newline at end of file +| Port | Description | +|-------|--------------------------------------------------------------------------| +| 80 | standard httpd network port used for non encrypted http traffic +| 443 | SSL enabeled http port used for encrypted traffic (certificate not actually implemented) + +## Exposed volumes + +| Container directory | Description | +|----------------------|--------------------------------------------------------------------------| +| /data/logs/apache | log directory used to record container and apache logs +| /data/apache | data directory served by apache. If empty will be filled with app on startup. In other case use content from mountpoint or data volumes + +## Testing the service + +access to the running webserver with your favorites browser `firefox http://localhost:80`. Change port and hostname according to your current configuration + +## For advanced users + +You want to use this container and code to build and create locally this container, follow theses instructions. + +This section will help you if you want to : +* Get latest version of this service container +* Enhance container content by adding instruction in Dockefile before build step + +You must have a working environment with the source code of this repository. Read and follow [how to setup your working environment](https://github.com/startxfr/docker-images#setup-your-working-environment-mandatory) to get a working directory. The following instructions assume you are at the top level of your working directory. + +### Build & run a container using `docker` + +1. Jump into the container directory with `cd Services/apache` +2. Build the container using `docker build -t sv-apache .` +3. Run this container + 1. Interactively with `docker run -p 80:80 -v /data/logs/apache -it sv-apache`. If you add a second parameter (like `/bin/bash`) to will run this command instead of the default entrypoint. Usefull to interact with this container (ex: `/bin/bash`, `/bin/ps -a`, `/bin/df -h`,...) + 2. As a daemon with `docker run -p 80:80 -v /data/logs/apache -d sv-apache` + + +### Build & run a container using `docker-compose` + +1. Jump into the container directory with `cd Services/apache` +2. Run this container + 1. Interactively with `docker-compose up` Startup logs appears and escaping this command stop the container + 2. As a daemon with `docker-compose up -d`. Container startup logs can be read using `docker-compose logs` + +If you experience trouble with port already used, edit docker-compose.yml file and change port mapping -- cgit v1.2.3