What is Subrion?
Subrion is a free open source content management system
that allows you to build websites for any purpose. Yes, from blog to corporate mega portal.
How to use this image
Start up a MySQL container.
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=secretpass -d mysql
For more information on MySQL containers, please refer to this.
$ docker run --name some-subrion —-link some-mysql:mysql -d intelliants/subrion
The following environment variables are also honored for configuring your Subrion instance:
-e SUBRION_DB_HOST=…(defaults to the IP and port of the linked
-e SUBRION_DB_USER=…(defaults to "root")
-e SUBRION_DB_PASSWORD=…(defaults to the value of the
MYSQL_ROOT_PASSWORDenvironment variable from the linked
-e SUBRION_DB_NAME=…(defaults to "subrion")
SUBRION_DB_NAME specified does not already exist on the given MySQL server, it will be created automatically upon startup of the
subrioncontainer, provided that the
SUBRION_DB_USER specified has the necessary permissions to create it.
$ docker run --name some-subrion --link some-mysql:mysql -p 8080:80 -d intelliants/subrion
The -p argument is used for port mapping. Inside the container, Apache runs on port 80. We tell Docker that we’ll use the port 8080 to communicate with the port 80 inside the container.
If you'd like to use an external database instead of a linked
mysqlcontainer, specify the hostname and port with
SUBRION_DB_HOST along with the password in
SUBRION_DB_PASSWORD and the username in
SUBRION_DB_USER (if it is something other than
$ docker run --name some-subrion -e SUBRION_DB_HOST=10.1.2.3:3306 \ -e SUBRION_DB_USER=... -e SUBRION_DB_PASSWORD=... -d intelliants/subrion
The problem with this example is that we can't access the Subrion files easily, also each time we start the container, it will change its IP. But we can easily fix both of these issues.
$ docker run -d --name some-subrion --link some-mysql:mysql -p 127.0.0.2:8080:80 -v "$PWD/":/var/www/html intelliants/subrion
We specified 127.0.0.2 as the IP for this container to avoid dynamic IP. -v "$PWD/":/var/www/html will map the two folders. By default, the container puts the Subrion files in the /var/www/html directory which is the filesystem inside the container (this is nothing to do with our local filesystem).
Check out your current directory and you'll see that some additional files are there. So we recommended to run the command above in a dedicated empty directory, let it be
If you're on Linux, you should change the permissions of the Subrion folder (the local folder) to writable. That's because the containers are created by the Docker daemon, a process that starts when the system boots (by the sudo user). To fix this execute:
$ sudo chmod -R 777 subrion
You'll now have write access to these folders and you'll be good to go!
… via docker-compose
version: '2' services: subrion: image: intelliants/subrion links: - subriondb:mysql ports: - 8080:80 environment: SUBRION_DB_PASSWORD: secretpass subriondb: image: mysql:5.6 environment: MYSQL_ROOT_PASSWORD: secretpass
docker-compose up, wait for it to initialize completely, and visit
Adding additional libraries / extensions
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.
If you need additional PHP extensions, you'll need to create your own image
FROM this one. The documentation of the
php image explains how to compile additional extensions.
The following Docker Hub features can help with the task of keeping your dependent images up-to-date: