Attention
You can now run different PHP versions per project:
Release v3.0.0-beta-0.1
7. Add your own Docker image¶
This section is all about customizing the Devilbox and its Docker images specifically to your needs.
Table of Contents
7.1. Prerequisites¶
The new Docker image definition will be added to a file called docker-compose.override.yml
.
So before going any further, read the following section that shows you how to create this file
for the Devilbox as well as what pitfalls to watch out for.
See also
7.2. What information do you need?¶
<name>
- A name, which you can use to refer in thedocker-compose
command<image-name>
- The Docker image name itself<image-version>
- The Docker image tag<unused-ip-address>
- An unused IP address from the devilbox network (found insidedocker-compose.yml
)
7.3. How to add a new service?¶
7.3.1. Generic example¶
7.3.1.1. A single new service¶
Open docker-compose.override.yml
with your favourite editor and paste the following snippets
into it.
version: '2.1'
services:
# Your custom Docker image here:
<name>:
image: <image-name>:<image-version>
networks:
app_net:
ipv4_address: <unused-ip-address>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of custom Docker image
Note
<name>
has to be replaced with any name of your choice<image-name>
has to be replaced with the name of the Docker image<image-version>
has to be replaced with the tag of the Docker image<unused-ip-address>
has to be replaced with an unused IP address
7.3.1.2. Two new services¶
version: '2.1'
services:
# Your first custom Docker image here:
<name1>:
image: <image1-name>:<image1-version>
networks:
app_net:
ipv4_address: <unused-ip-address1>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of first custom Docker image
# Your second custom Docker image here:
<name2>:
image: <image2-name>:<image2-version>
networks:
app_net:
ipv4_address: <unused-ip-address2>
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of second custom Docker image
Note
<name1>
has to be replaced with any name of your choice<image1-name>
has to be replaced with the name of the Docker image<image1-version>
has to be replaced with the tag of the Docker image<unused-ip-address1>
has to be replaced with an unused IP address
Note
<name2>
has to be replaced with any name of your choice<image2-name>
has to be replaced with the name of the Docker image<image2-version>
has to be replaced with the tag of the Docker image<unused-ip-address2>
has to be replaced with an unused IP address
7.3.2. CockroachDB example¶
Gather the requirements for the
Cockroachc DB
Docker image:
- Name:
cockroach
- Image:
cockroachdb/cockroach
- Tag:
latest
- IP:
172.16.238.240
Now add the information to docker-compose.override.yml
:
version: '2.1'
services:
# Your custom Docker image here:
cockroach:
image: cockroachdb/cockroach:latest
command: start --insecure
networks:
app_net:
ipv4_address: 172.16.238.240
# For ease of use always automatically start these:
depends_on:
- bind
- php
- httpd
# End of custom Docker image
7.4. How to start the new service?¶
The following will bring up your service including all of its dependent services,
as defined with depends_on
(bind, php and httpd). You need to replace <name>
with the
name you have chosen.
host> docker-compose up <name>
In the example of Cockroach DB the command would look like this
host> docker-compose up cockroach