Skip to content

Commit d6898e4

Browse files
Update README.md
A very extensive re-vamp of the README.md file to attune it better to docker (and Backdrop) neophytes
1 parent 5012f10 commit d6898e4

File tree

1 file changed

+183
-54
lines changed

1 file changed

+183
-54
lines changed

README.md

+183-54
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,177 @@
1-
# Docker Official Image
1+
# What is Backdrop?
22

3-
https://github.com/docker-library/official-images/blob/master/library/backdrop
3+
_**TL;DR: Backdrop is an exciting and promising way forward for organizations seeking a means of leaving legacy Drupal behind in a way that preserves Drupal-related investments of time, energy, people and money as much as possible.**_
44

5-
# Supported tags and respective `Dockerfile` links
5+
Backdrop is a web application development framework most commonly configured as a Content Management System (CMS) for use by:
66

7-
- [`1.29.2-apache`, `1.29.2`, `1-apache`, `1` (*1/apache/Dockerfile*)](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
8-
- [`1.29.2-fpm`, `1-fpm` (*1/fpm/Dockerfile*)](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
7+
- Small & Medium Sized Enterprises (SME)
8+
- Governments & Government Departments
9+
- Non-Governmental Organizations (NGO)
10+
- Non-Profit Organizations (NPO)
11+
- Educational Institutions (EI).
912

10-
[![](https://badge.imagelayers.io/kalabox/backdrop:latest.svg)](https://imagelayers.io/?images=kalabox/backdrop:latest 'Get your own badge on imagelayers.io')
13+
Backdrop started off as a "fork" of an immensely popular Drupal 7. The genesis of the Backdrop CMS Project was the release of Drupal 8. That release (and every subsequent Drupal release thereafter) introduced an explosion in uncertainty, complexity and cost. Some of the key goals of Backdrop are predictability, reliability, controlled complexity and maximum compatibility with the code base of Drupal 7 - especially in terms of compatibility with Drupal 7 contributed modules and themes. There are over 16,000+ contributed Drupal 7 modules and themes, representing a near-infinite range of solutions.
1114

12-
# What is Backdrop?
15+
Since 2013, Backdrop has remained true to its goals. Now, a Backdrop conversion can take a small fraction of the time and expense involved with migrating to a different CMS (usually Wordpress), using a cloud-based provider (WIX or Shopify) or even upgrading to the latest version of Drupal. Many organizations have already leveraged the power of Backdrop to move away from legacy Drupal, especially Drupal 7, in a way that they feel is the fastest, easiest and least expensive way possible.
16+
17+
The Backdrop Project was started over a decade ago. To date, its story is marked by a string of successes: It is being continually improved. It offers the latest technologies. New versions of Backdrop are released in a regular and methodical way. Backdrop releases are supported for a very long time. New (and converted) Backdrop modules and themes are arriving ever more frequently. It has a dedicated, mature, experienced and highly professional project team.
18+
19+
# Latest edition
20+
The latest edition of Backdrop is **1.29.2**
21+
22+
_(a full list of every docker image available for Backdrop, including legacy and alternative versions, appears at the end of this document)_
23+
24+
# Tags
25+
## Apache 2 (apache)
26+
27+
[`latest`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
28+
[`backdrop`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
29+
[`1.29.2-apache`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
30+
[`1.29.2`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
31+
[`1-apache`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
32+
[`1`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
33+
34+
Source [*Dockerfile*](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
35+
36+
## FastCGI Process Manager (fpm)
37+
[`1.29.2-fpm`](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
38+
[`1-fpm`](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
39+
40+
Source [*Dockerfile*](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
41+
42+
# Use
43+
The fastest and easiest way to "spin up" any of the above-mentioned Backdrop containers with docker is to:
44+
45+
1) Install docker on a host system
46+
2) Create a named directory to marshal docker-related Backdrop assets
47+
3) Create a docker startup file that references a specific Backdrop docker image
48+
4) Launch docker in such a way that it processes the startup file
49+
50+
## Step 1: Install docker on a host system
51+
[Docker's installation instructions for Windows, Mac and Linux](https://www.docker.com/get-started)
52+
53+
## Step 2: Create a named directory to marshal docker-related Backdrop assets
54+
In this case we will create a directory named `backdrop-eval` to help assemble together some Backdrop-related docker assets
55+
56+
`md backdrop-eval`
1357

14-
Backdrop is a comprehensive Content Management System (CMS) intended to address the specific requirements of Small & Medium Sized Enterprises (SME), Non-Governmental Organizations (NGO), Non-Profit Organizations (NPO) and Educational Institutions (EI). Backdrop started off as a "fork" of the immensely popular Drupal 7 CMS. Its genesis was the introduction of Drupal 8 and the realization that Drupal versions were becoming increasingly burdensome, costly and difficult to design, implement, maintain and upgrade. In response, Backdrop CMS was launched. One of the key goals of Backdrop was to maintain the highest possible degree of compatibility with Drupal 7, because its ecosystem included 150,000+ contributed themes and modules. It has remained true to that original goal, and it can credibly claim to be THE fastest, easiest and cheapest "sidegrade" from Drupal 7, with some conversions taking a fraction of the time it would take to move to a more modern version of Drupal or a different CMS altogether. Backdrop has also been continuously improved for over a decade, and is compatible with the latest technologies. For those with an existing or new website requirement, Backdrop offers a complete operating environment, with new functionality being released regularly.
58+
`cd backdrop-eval`
1559

16-
For those who wish to move away from Drupal 7, or launch a new website, Backdrop is a great option and worth evaluating.
60+
## Step 3: Create a docker startup file that references a specific Backdrop docker image
61+
In the `backdrop-eval` directory, create `compose.yml` file with the following contents:
1762

18-
This is why Backdrop offers a Docker image.
63+
```yaml
64+
backdrop:
65+
image: backdrop/backdrop
66+
links:
67+
- db:mysql
68+
ports:
69+
- 8080:80
70+
71+
db:
72+
image: mysql
73+
environment:
74+
MYSQL_USER: backdrop
75+
MYSQL_PASSWORD: backdrop
76+
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
77+
MYSQL_DATABASE: backdrop
1978

79+
```
80+
81+
## Step 4: Launch docker in such a way that it processes the startup file
82+
While in the `docker-eval` directory, enter the following command:
83+
84+
`docker compose up`
85+
86+
This command instructs docker to process the `compose.yml` file. The screen should immediately begin to fill with startup messages as docker composes the Backdrop runtime environment. After a minute or so, the pace of new messages should settle down, with just status messages being displayed. At this point the Backdrop installation screen should be accessible via a web browser.
87+
88+
### Accessing a remote docker container
89+
If the web browser is running on a different machine than the one running docker, the Backdrop installation should be accessible at:
90+
91+
`http://{host-ip}:8080`.
92+
93+
Where `{host-ip}` is the IP address of the machine running docker.
94+
95+
### Accessing a local docker container
96+
If the web browser is running on the same machine as docker, the Backdrop installation should be accessible at:
97+
98+
`http://localhost:8080`
99+
100+
### 'compose.yml` Embedded Credentials
101+
The credentials embedded in the `compose.yml` will be required in the Backdrop installation routine:
102+
103+
```
104+
User: backdrop
105+
Password: backdrop
106+
Database: backdrop
107+
```
108+
109+
## How to validate the docker-based backdrop runtime environment
110+
Validating that backdrop indeed constructed a valid runtime environment may be accomplished with the following command:
111+
112+
```
113+
docker ps
114+
```
115+
116+
The resulting listing should include TWO (2) docker containers, one for the database server (mysql), one for the CMS (backdrop).
117+
118+
## How to access the docker-based backdrop runtime environment
119+
Accessing the docker container may be accomplished with the following command:
120+
121+
```
122+
docker exec -it backdrop bash
123+
```
124+
125+
## Trying out other docker images
126+
The above `compose.yml` specifically references the `backdrop/backdrop` docker image.
127+
128+
This is just an example to help get you started. Once you are familiar with how to "spin up" a docker image, there is nothing to stop you from trying out different docker images to find the one you like the best. A complete listing of all available backdrop docker images is available at the end of this document.
129+
130+
# Backdrop
20131
![logo](https://backdropcms.org/files/inline-images/Backdrop-Logo-Vertical_0.png)
21132

22-
# How to use this image
133+
# License
23134

24-
The basic pattern for starting a `backdrop` instance is:
135+
View [license information](https://www.drupal.org/licensing/faq) for the software contained in this image.
136+
137+
# Feedback
138+
139+
## Issue Queue(s)
140+
- [Backdrop CMS Core Issue Queue](https://github.com/backdrop/backdrop-issues/issues)
141+
- [Backdrop CMS Contrib at Github.com](https://github.com/backdrop-contrib) - Each contrib project has it's own issue queue.
142+
143+
## Documentation
144+
- [Backdrop CMS Documentation](https://docs.backdropcms.org/)
145+
146+
## Contributing
147+
- [Contribute to the Backdrop CMS Open Source Project](https://docs.backdropcms.org/documentation/contributors-guide)
148+
149+
## Official Docker Image
150+
151+
https://github.com/docker-library/official-images/blob/master/library/backdrop
152+
153+
# Expert Mode
154+
155+
## Installing additional libraries & extensions
156+
These images do not provide any additional PHP extensions or other libraries, even if they are required by popular plugins. There are an infinite number of possible plugins, and they potentially require any extension PHP supports. Including every PHP extension that exists would dramatically increase the image size.
157+
158+
## Generating your own docker image(s)
159+
If you need additional PHP extensions, you'll need to create your own image `FROM` this one. The [documentation of the `php` image](https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions) explains how to compile additional extensions. Additionally, the [`drupal:7` Dockerfile](https://github.com/docker-library/drupal/blob/bee08efba505b740a14d68254d6e51af7ab2f3ea/7/Dockerfile#L6-9) has an example of doing this.
160+
161+
The following Docker Hub features can help with the task of keeping your dependent images up-to-date:
162+
163+
- [Automated Builds](https://docs.docker.com/docker-hub/builds/) let Docker Hub automatically build your Dockerfile each time you push changes to it.
164+
- [Repository Links](https://docs.docker.com/docker-hub/builds/#repository-links) can ensure that your image is also rebuilt any time `drupal` is updated.
165+
166+
## Launching backdrop manually using `docker run` commands
167+
168+
### MySQL
169+
NOTE: A pre-configured database server must already exist before a backdrop container can be launched.
170+
171+
Check out the [official mysql image](https://hub.docker.com/_/mysql/) for more info on spinning up a DB.
172+
173+
## Backdrop
174+
The basic pattern for starting a `backdrop` instance (given that the `BACKDROP_DB_NAME` **already exists** on a running MySQL server container) is:
25175

26176
```console
27177
docker run --name some-backdrop --link some-mysql:mysql -d backdrop/backdrop
@@ -36,7 +186,6 @@ The following environment variables are also honored for configuring your Backdr
36186
- `-e BACKDROP_DB_PORT=...` (defaults to 3306)
37187
- `-e BACKDROP_DB_DRIVER=...` (defaults to "mysql")
38188

39-
The `BACKDROP_DB_NAME` **must already exist** on the given MySQL server. Check out the [official mysql image](https://hub.docker.com/_/mysql/) for more info on spinning up a DB.
40189

41190
If you'd like to be able to access the instance from the host without the container's IP, standard port mappings can be used:
42191

@@ -57,54 +206,34 @@ docker run --name some-backdrop \
57206
-d backdrop/backdrop
58207
```
59208

60-
## ... via [`docker-compose`](https://github.com/docker/compose)
61-
62-
Example `docker-compose.yml` for `backdrop`:
63-
64-
```yaml
65-
backdrop:
66-
image: backdrop/backdrop
67-
links:
68-
- db:mysql
69-
ports:
70-
- 8080:80
71-
72-
db:
73-
image: mysql
74-
environment:
75-
MYSQL_USER: backdrop
76-
MYSQL_PASSWORD: backdrop
77-
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
78-
MYSQL_DATABASE: backdrop
79-
80-
```
81-
82-
Run `docker-compose up`, wait for it to initialize completely, and visit `http://localhost:8080` or `http://host-ip:8080`.
209+
# All available backdrop docker images
210+
## 1.30.0 (upcoming)
83211

84-
## Adding additional libraries / extensions
212+
### Apache 2 (apache)
85213

86-
This image does not provide any additional PHP extensions or other libraries, even if they are required by popular plugins. There are an infinite number of possible plugins, and they potentially require any extension PHP supports. Including every PHP extension that exists would dramatically increase the image size.
214+
### FastCGI Process Manager (fpm)
87215

88-
If you need additional PHP extensions, you'll need to create your own image `FROM` this one. The [documentation of the `php` image](https://github.com/docker-library/docs/blob/master/php/README.md#how-to-install-more-php-extensions) explains how to compile additional extensions. Additionally, the [`drupal:7` Dockerfile](https://github.com/docker-library/drupal/blob/bee08efba505b740a14d68254d6e51af7ab2f3ea/7/Dockerfile#L6-9) has an example of doing this.
89-
90-
The following Docker Hub features can help with the task of keeping your dependent images up-to-date:
216+
## 1.29.2 (latest)
91217

92-
- [Automated Builds](https://docs.docker.com/docker-hub/builds/) let Docker Hub automatically build your Dockerfile each time you push changes to it.
93-
- [Repository Links](https://docs.docker.com/docker-hub/builds/#repository-links) can ensure that your image is also rebuilt any time `drupal` is updated.
94-
95-
# License
218+
### Apache 2 (apache)
96219

97-
View [license information](https://www.drupal.org/licensing/faq) for the software contained in this image.
220+
[`latest`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
221+
[`backdrop`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
222+
[`1.29.2-apache`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
223+
[`1.29.2`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
224+
[`1-apache`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
225+
[`1`](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
98226

99-
# User Feedback
227+
Source [*Dockerfile*](https://github.com/kalabox/backdrop-docker/blob/master/1/apache/Dockerfile)
228+
229+
### FastCGI Process Manager (fpm)
230+
[`1.29.2-fpm`](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
231+
[`1-fpm`](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
100232

101-
## Documentation
102-
- [Backdrop CMS Documentation](https://docs.backdropcms.org/)
233+
Source [*Dockerfile*](https://github.com/kalabox/backdrop-docker/blob/master/1/fpm/Dockerfile)
103234

104-
## Issues
105-
- [Backdrop CMS Core Issue Queue](https://github.com/backdrop/backdrop-issues/issues)
106-
- [Backdrop CMS Contrib at Github.com](https://github.com/backdrop-contrib) - Each contrib project has it's own issue queue.
235+
## 1.29.6
107236

108-
## Contributing
109-
- [Contribute to the Backdrop CMS Open Source Project](https://docs.backdropcms.org/documentation/contributors-guide)
237+
### Apache 2 (apache)
110238

239+
### FastCGI Process Manager (fpm)

0 commit comments

Comments
 (0)