Dockerfile to build an Alfresco container image.
Here is how you can help:
Pull the image from the docker index.
docker pull gui81/alfresco:latest
or pull a particular version:
docker pull gui81/alfresco:201707
Alternatively, you can build the image yourself:
git clone https://github.com/gui81/docker-alfresco.git
cd docker-alfresco
docker build --tag="$USER/alfresco" .
Run the alfresco image with the name "alfresco".
docker run --name='alfresco' -it --rm -p 8080:8080 gui81/alfresco
NOTE: Please allow a few minutes for the application to start, especially if populating the database for the first time.
Go to http://localhost:8080/share
or point to the ip of your docker server.
On the Mac, if you are running docker-machine, then you can go to the ip
reported by:
docker-machine ip [name of Docker VM]
The default username and password are:
Alfresco should now be up and running. The following is an example that would mount the appropriate volume, connect to a remote PostgreSQL database, and use an external LDAP server for authentication:
docker run --name='alfresco' -it --rm -p 445:445 -p 7070:7070 -p 8080:8080 \
-v '/host/alfresco/content:/content' \
-v '/host/alfresco/data:/alfresco/alf_data' \
-e 'CONTENT_STORE=/content' \
-e 'LDAP_ENABLED=true' \
-e 'LDAP_AUTH_USERNAMEFORMAT=uid=%s,cn=users,cn=accounts,dc=example,dc=com' \
-e 'LDAP_URL=ldap://ipa.example.com:389' \
-e 'LDAP_DEFAULT_ADMINS=admin' \
-e 'LDAP_SECURITY_PRINCIPAL=uid=admin,cn=users,cn=accounts,dc=example,dc=com' \
-e 'LDAP_SECURITY_CREDENTIALS=password' \
-e 'LDAP_GROUP_SEARCHBASE=cn=groups,cn=accounts,dc=example,dc=com' \
-e 'LDAP_USER_SEARCHBASE=cn=users,cn=accounts,dc=example,dc=com' \
-e 'DB_KIND=postgresql' \
-e 'DB_HOST=db_server.example.com' \
-e 'DB_USERNAME=alfresco' \
-e 'DB_PASSWORD=alfresco' \
-e 'DB_NAME=alfresco' \
gui81/alfresco
If you want to use this image in production, then please read on.
In production, you will want to make sure to specify and mount the CONTENT_STORE and /alfresco/alf_data directories to persist this data. Example:
/content
/alfresco/alf_data
Volumes can be mounted by passing the '-v' option to the docker run command. The following is an example:
docker run --name alfresco -it --rm -v /host/alfresco/content:/content -v /host/alfresco/data:/alfresco/alf_data
If the DB_HOST
environment variable is not set, or set to localhost, then the
image will use the internal PostgreSQL server.
PostgreSQL is the default, but MySQL/MariaDB is also supported. If you are using an existing database installation, then make sure to create the database and a user:
CREATE ROLE alfresco WITH LOGIN PASSWORD 'alfresco';
CREATE DATABASE alfresco;
GRANT ALL PRIVILEGES ON DATABASE alfresco TO alfresco;
Below is the complete list of currently available parameters that can be set using environment variables.
localhost
8080
if protocol is http or 8443
if protocol is httpshttp
true
localhost
WORKGROUP
/content
localhost
postgresql
alfresco
admin
alfresco
5432
false
uid=%s,cn=users,cn=accounts,dc=example,dc=com
ldap://ldap.example.com:389
admin
uid=admin,cn=users,cn=accounts,dc=example,dc=com
password
cn=groups,cn=accounts,dc=example,dc=com
cn=users,cn=accounts,dc=example,dc=com
uid
in OpenLDAP or sAMAccountName
in Active Directory); default = uid
memberUid
in OpenLDAP or member
in Active Directory); default = memberUid
localhost
25
alfresco@alfresco.org
smtp
false
false
false
false
true
localhost
8080
if protocol is http or 8443
if protocol is httpshttp
PRODUCTION
false
TODO: I might be able to add some options that aid in upgrading. For now though, backup, backup, backup, and then follow this guide: