05-14-2021 03:43 AM
I've managed to start latest Alfresco on Docker on CentOS 7.
I have plenty of experience in Alfresco environment in old fashioned way, but zero in the new reality so be kind to me. ![]()
So, this is dockered Alfresco, and I'd like to do some prototyping in developing some test web scripts.
How do I do it, for example in Eclipse dev environment?
TIA!
05-18-2021 03:54 AM
I did it finally!
Several things were wrong in my setup, so it may help some unfortunate soul:
1. Your DB URI/name is not "localhost" or "127.0.0.1", but how you name it in your docker-compose file. My DB:
database:
image: mysql:5.7
mem_limit: 512m
...2. Wherever you reference DB, use that name, for example in alfresco service in docker-compose,yml file:
JAVA_OPTS ... -Ddb.url=\"jdbc:mysql://database:3306/alfresco?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=true\"
In YOUR OWN alfresco-global.properties file:
##
# MySQL
##
db.name=alfresco
db.username=alfresco
db.password=alfresco
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://database/${db.name}?useUnicode=true&characterEncoding=UTF-8
db.master.url=jdbc:mysql://database/
db.master.username=${db.username}
db.master.password=${db.password}
db.drop.command=drop database if exists ${db.name}
db.create.command=create database ${db.name} CHARACTER SET utf8 COLLATE utf8_bin;2. Volumes for alfresco service (watch out for writing permissions if on Linux!):
volumes:
- ./volumes/data/alf_data:/usr/local/tomcat/alf_data
- ./mysql-connector-java-8.0.25.jar:/usr/local/tomcat/lib/mysql-connector-java-8.0.25.jar
- ./alfresco-global.properties:/usr/local/tomcat/shared/classes/alfresco-global.properties3. My complete database service (with volumes):
database:
image: mysql:5.7
mem_limit: 512m
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=alfresco
- MYSQL_USER=alfresco
- MYSQL_PASSWORD=alfresco
command: --explicit_defaults_for_timestamp
ports:
- 3306:3306
security_opt:
- seccomp:unconfined
cap_add:
- SYS_NICE # CAP_SYS_NICE
volumes:
- ./volumes/data/mysql_data:/var/lib/mysql
- ./volumes/logs/mysql:/var/log/mysqlI'm happy, officially! ![]()
05-17-2021 08:27 AM
Maybe I'm using "volumes" keyword in a wrong way? I'm trying to use it to inject files into containers. For example, in Alfresco container:
volumes:
- ./mysql-connector-java-8.0.25.jar:/usr/local/tomcat/lib/mysql-connector-java-8.0.25.jar
- ./mysql-connector-java-8.0.25.jar:/usr/local/tomcat/webapps/alfresco/WEB-INF/lib/mysql-connector-java-8.0.25.jar
- ./alfresco-global.properties:/usr/local/tomcat/shared/classes/alfresco-global.properties
05-18-2021 03:54 AM
I did it finally!
Several things were wrong in my setup, so it may help some unfortunate soul:
1. Your DB URI/name is not "localhost" or "127.0.0.1", but how you name it in your docker-compose file. My DB:
database:
image: mysql:5.7
mem_limit: 512m
...2. Wherever you reference DB, use that name, for example in alfresco service in docker-compose,yml file:
JAVA_OPTS ... -Ddb.url=\"jdbc:mysql://database:3306/alfresco?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=true\"
In YOUR OWN alfresco-global.properties file:
##
# MySQL
##
db.name=alfresco
db.username=alfresco
db.password=alfresco
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://database/${db.name}?useUnicode=true&characterEncoding=UTF-8
db.master.url=jdbc:mysql://database/
db.master.username=${db.username}
db.master.password=${db.password}
db.drop.command=drop database if exists ${db.name}
db.create.command=create database ${db.name} CHARACTER SET utf8 COLLATE utf8_bin;2. Volumes for alfresco service (watch out for writing permissions if on Linux!):
volumes:
- ./volumes/data/alf_data:/usr/local/tomcat/alf_data
- ./mysql-connector-java-8.0.25.jar:/usr/local/tomcat/lib/mysql-connector-java-8.0.25.jar
- ./alfresco-global.properties:/usr/local/tomcat/shared/classes/alfresco-global.properties3. My complete database service (with volumes):
database:
image: mysql:5.7
mem_limit: 512m
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=alfresco
- MYSQL_USER=alfresco
- MYSQL_PASSWORD=alfresco
command: --explicit_defaults_for_timestamp
ports:
- 3306:3306
security_opt:
- seccomp:unconfined
cap_add:
- SYS_NICE # CAP_SYS_NICE
volumes:
- ./volumes/data/mysql_data:/var/lib/mysql
- ./volumes/logs/mysql:/var/log/mysqlI'm happy, officially! ![]()
05-18-2021 06:54 AM
Hi @joko71
Great news - so pleased you're happy! Also, thank you for taking the time to outline how you got it working - really invaluable & may help others in a similar situation. I'll mark your thread as answered - that will also help others.
Onwards & upwards with Alfresco!
Explore our Alfresco products with the links below. Use labels to filter content by product module.