1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
<!--[metadata]>
+++
title = "STARTX Docker Services Images : APACHE"
description = "Docker container with apache service based on latest fedora"
keywords = ["home, docker, startx, apache, fedora, centos, repository, container, swarm, compose"]
weight=3
+++
<![end-metadata]-->
# Docker OS Images : APACHE
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)
| [![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) |
|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------|----------------------------------------------------------------------------------|-----------------------------------------------|
## Available flavours
* `: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
## Running from dockerhub registry
* 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-compose in various situations
* 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
```
## 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-apache: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
| 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` | is set to /data/logs/apache and used as a volume mountpoint
| APP_PATH | `auto` | `auto` | is set to /data/apache and used as a volume mountpoint
## Exposed port
| 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
*************
# STARTX Services docker-images : Memcache Server
Container running memcached daemon under a fedora server
This container run memcached on fedora server.
## Running from docker registry
docker run -d -p 11211:11211 --name="memcache" startx/sv-memcache
when linked to another container
docker run -d --name="memcache" startx/sv-memcache
docker run -d --name="php" --link memcache:memcache 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 .
Change configuration and personalize your base image. See sx/memcache_run.sh to perform some usefull when configuring or every time you run a container.
Build the container
docker build -t sv-memcache Services/memcache/
### Running local image
docker run -d -p 11211:11211 --name="memcache" sv-memcache
## Accessing server
access to the container itself
docker exec -it memcache /bin/bash
## Related Resources
* [Sources files](https://github.com/startxfr/docker-images/tree/master/Services/memcache)
* [Github STARTX profile](https://github.com/startxfr/docker-images)
* [Docker registry for this container](https://registry.hub.docker.com/u/startx/sv-memcache/)
* [Docker registry for Fedora](https://registry.hub.docker.com/u/fedora/)
|