You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

467 lines
16 KiB

#
# This is for building a local OpenEMR development and testing environment.
# (Recommend not running it from your git repo and instead mirroring your
# git repo to a testing directory (such as your web directory).)
#
# Brief instructions on how to use (for fuller instructions and examples,
# see the document at contrib/util/docker/README.md):
# 1. go to contrib/util/docker directory
# 2. docker-compose up -d
# 3. Choose one of any of the following links:
# http://localhost:8080 (with Alpine 3.12 (Apache and PHP 7.3))
# http://localhost:8081 (with Alpine 3.15 (Apache and PHP 7.4))
# http://localhost:8082 (with Alpine 3.15 (Apache and PHP 8.0))
# http://localhost:8083 (with Alpine 3.16 (Apache and PHP 8.1))
# http://localhost:8084 (with Alpine Edge (Apache and now PHP 8.1))
# http://localhost:8090 (with Alpine 3.12 (Apache and PHP 7.3) with redis)
# http://localhost:8091 (with Alpine 3.15 (Apache and PHP 7.4) with redis)
# http://localhost:8092 (with Alpine 3.15 (Apache and PHP 8.0) with redis)
# http://localhost:8093 (with Alpine 3.16 (Apache and PHP 8.1) with redis)
# http://localhost:8094 (with Alpine Edge (Apache and now PHP 8.1) with redis)
# http://localhost:8100 (with Nginx and PHP-FPM 7.3)
# http://localhost:8101 (with Nginx and PHP-FPM 7.4)
# http://localhost:8102 (with Nginx and PHP-FPM 8.0)
# http://localhost:8103 (with Nginx and PHP-FPM 8.1)
# http://localhost:8104 (with Nginx and PHP-FPM 8.2)
# http://localhost:8150 (with Nginx and PHP-FPM 7.3 with redis)
# http://localhost:8151 (with Nginx and PHP-FPM 7.4 with redis)
# http://localhost:8152 (with Nginx and PHP-FPM 8.0 with redis)
# http://localhost:8153 (with Nginx and PHP-FPM 8.1 with redis)
# http://localhost:8154 (with Nginx and PHP-FPM 8.2 with redis)
# https://localhost:9080 with SSL and Alpine 3.12 (with Apache and PHP 7.3)
# https://localhost:9081 with SSL and Alpine 3.15 (with Apache and PHP 7.4)
# https://localhost:9082 with SSL and Alpine 3.15 (with Apache and PHP 8.0)
# https://localhost:9083 with SSL and Alpine 3.16 (with Apache and PHP 8.1)
# https://localhost:9084 with SSL and Alpine Edge (with Apache and now PHP 8.1)
# https://localhost:9090 with SSL and Alpine 3.12 (with Apache and PHP 7.3 with redis)
# https://localhost:9091 with SSL and Alpine 3.15 (with Apache and PHP 7.4 with redis)
# https://localhost:9092 with SSL and Alpine 3.15 (with Apache and PHP 8.0 with redis)
# https://localhost:9093 with SSL and Alpine 3.16 (with Apache and PHP 8.1 with redis)
# https://localhost:9094 with SSL and Alpine Edge (with Apache and now PHP 8.1 with redis)
# https://localhost:9100 with SSL (with Nginx and PHP-FPM 7.3)
# https://localhost:9101 with SSL (with Nginx and PHP-FPM 7.4)
# https://localhost:9102 with SSL (with Nginx and PHP-FPM 8.0)
# https://localhost:9103 with SSL (with Nginx and PHP-FPM 8.1)
# https://localhost:9104 with SSL (with Nginx and PHP-FPM 8.2)
# https://localhost:9150 with SSL (with Nginx and PHP-FPM 7.3 with redis)
# https://localhost:9151 with SSL (with Nginx and PHP-FPM 7.4 with redis)
# https://localhost:9152 with SSL (with Nginx and PHP-FPM 8.0 with redis)
# https://localhost:9153 with SSL (with Nginx and PHP-FPM 8.1 with redis)
# https://localhost:9154 with SSL (with Nginx and PHP-FPM 8.2 with redis)
#
# On the main setup input screen:
# 1. for Server Host, use either 'mariadb' or `mariadb-ssl` or 'mysql' or 'mysql-old' or 'mariadb-old' or 'mariadb-very-old' or 'mariadb-very-very-old' or `mariadb-very-very-very-old` (have both mariadb/mysql/mariadb-dev/mysql dockers ready to go make testing either one easy; mysql is version 8.0; mysql-old is version 5.7; mariadb is version 10.6; mariadb-ssl is version 10.6 with support for ssl; mariadb-old is version 10.5; mariadb-very-old is version 10.4; mariadb-very-very-old is version 10.3; mariadb-very-very-very-old is version 10.2)
# 2. for Root Pass, use 'root'
# 3. for User Hostname, use '%'
# And when need to tear it down and restart it
# 1. docker-compose down -v
# 2. docker-compose up -d
# Can see databases via http://localhost:8200
#
version: '3.1'
services:
openemr-7-3-312:
restart: always
image: openemr/openemr:flex-3.12
ports:
- 8080:80
- 9080:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
EMPTY: "yes"
openemr-7-4:
restart: always
image: openemr/openemr:flex-3.15
ports:
- 8081:80
- 9081:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
EMPTY: "yes"
openemr-8-0:
restart: always
image: openemr/openemr:flex-3.15-8
ports:
- 8082:80
- 9082:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
- couchdbvolume:/couchdb/data
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
EMPTY: "yes"
MYSQL_HOST: mariadb
MYSQL_ROOT_PASS: root
DEVELOPER_TOOLS: "yes"
INSANE_DEV_MODE: "yes"
XDEBUG_ON: 1
XDEBUG_PROFILER_ON: 1
# setting xdebug client host for cases where xdebug.discover_client_host fails
XDEBUG_CLIENT_HOST: host.docker.internal
GITHUB_COMPOSER_TOKEN: c313de1ed5a00eb6ff9309559ec9ad01fcc553f0
GITHUB_COMPOSER_TOKEN_ENCODED: ZWU5YWIwZWNiM2ZlN2I4YThlNGQ0ZWZiNjMyNDQ5MjFkZTJhMTY2OQo=
OPENEMR_SETTING_site_addr_oath: 'https://localhost:9085'
OPENEMR_SETTING_oauth_password_grant: 3
OPENEMR_SETTING_rest_system_scopes_api: 1
OPENEMR_SETTING_rest_api: 1
OPENEMR_SETTING_rest_fhir_api: 1
OPENEMR_SETTING_rest_portal_api: 1
OPENEMR_SETTING_portal_onsite_two_enable: 1
OPENEMR_SETTING_ccda_alt_service_enable: 3
OPENEMR_SETTING_couchdb_host: couchdb
OPENEMR_SETTING_couchdb_port: 6984
OPENEMR_SETTING_couchdb_user: admin
OPENEMR_SETTING_couchdb_pass: password
OPENEMR_SETTING_couchdb_dbase: example
OPENEMR_SETTING_couchdb_ssl_allow_selfsigned: 1
OPENEMR_SETTING_gbl_ldap_host: 'ldap://openldap:389'
OPENEMR_SETTING_gbl_ldap_dn: 'cn={login},dc=example,dc=org'
openemr-8-1:
restart: always
image: openemr/openemr:flex-3.16
ports:
- 8083:80
- 9083:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
EMPTY: "yes"
openemr-edge:
restart: always
image: openemr/openemr:flex-edge
ports:
- 8084:80
- 9084:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
EMPTY: "yes"
openemr-7-3-redis-312:
restart: always
image: openemr/openemr:flex-3.12
ports:
- 8090:80
- 9090:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
REDIS_SERVER: "redis"
EMPTY: "yes"
openemr-7-4-redis:
restart: always
image: openemr/openemr:flex-3.15
ports:
- 8091:80
- 9091:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
REDIS_SERVER: "redis"
EMPTY: "yes"
openemr-8-0-redis:
restart: always
image: openemr/openemr:flex-3.15-8
ports:
- 8092:80
- 9092:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
REDIS_SERVER: "redis"
EMPTY: "yes"
openemr-8-1-redis:
restart: always
image: openemr/openemr:flex-3.16
ports:
- 8093:80
- 9093:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
REDIS_SERVER: "redis"
EMPTY: "yes"
openemr-edge-redis:
restart: always
image: openemr/openemr:flex-edge
ports:
- 8094:80
- 9094:443
volumes:
- ../..:/var/www/localhost/htdocs/openemr
environment:
DEBUG_COLORS: "true"
TERM: xterm-256color
COLORTERM: truecolor
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
FORCE_NO_BUILD_MODE: "yes"
REDIS_SERVER: "redis"
EMPTY: "yes"
mariadb:
restart: always
image: mariadb:10.6
command: ['mysqld','--character-set-server=utf8mb4']
environment:
MYSQL_ROOT_PASSWORD: root
mariadb-ssl:
restart: always
image: mariadb:10.6
command: ['mysqld','--character-set-server=utf8mb4','--ssl-ca=/etc/ssl/ca.pem','--ssl_cert=/etc/ssl/server-cert.pem','--ssl_key=/etc/ssl/server-key.pem']
volumes:
- ../library/sql-ssl-certs-keys/insane/ca.pem:/etc/ssl/ca.pem:ro
- ../library/sql-ssl-certs-keys/insane/server-cert.pem:/etc/ssl/server-cert.pem:ro
- ../library/sql-ssl-certs-keys/insane/server-key.pem:/etc/ssl/server-key.pem:ro
environment:
MYSQL_ROOT_PASSWORD: root
mariadb-old:
restart: always
image: mariadb:10.5
command: ['mysqld','--character-set-server=utf8mb4']
ports:
- 8210:3306
environment:
MYSQL_ROOT_PASSWORD: root
mariadb-very-old:
restart: always
image: mariadb:10.4
command: ['mysqld','--character-set-server=utf8mb4']
environment:
MYSQL_ROOT_PASSWORD: root
mariadb--very-very-old:
restart: always
image: mariadb:10.3
command: ['mysqld','--character-set-server=utf8mb4']
environment:
MYSQL_ROOT_PASSWORD: root
mariadb-very-very-very-old:
restart: always
image: mariadb:10.2
command: ['mysqld','--character-set-server=utf8mb4']
environment:
MYSQL_ROOT_PASSWORD: root
mysql:
restart: always
image: mysql:8
command: ['mysqld','--character-set-server=utf8mb4','--default-authentication-plugin=mysql_native_password']
ports:
- 8220:3306
environment:
MYSQL_ROOT_PASSWORD: root
mysql-old:
restart: always
image: mysql:5.7
command: ['mysqld','--character-set-server=utf8mb4']
environment:
MYSQL_ROOT_PASSWORD: root
phpmyadmin:
restart: always
image: phpmyadmin
ports:
- 8200:80
environment:
PMA_HOSTS: mariadb,mariadb-old,mariadb-very-old,mariadb-very-very-old,mariadb-very-very-very-old,mysql,mysql-old,mariadb-ssl
couchdb:
restart: always
image: couchdb
ports:
- 5984:5984
- 6984:6984
volumes:
- ../library/couchdb-config-ssl-cert-keys/local.ini:/opt/couchdb/etc/local.ini:rw
- ../library/couchdb-config-ssl-cert-keys/insane/ca.pem:/etc/ssl/ca.pem:ro
- ../library/couchdb-config-ssl-cert-keys/insane/server-cert.pem:/etc/ssl/server-cert.pem:ro
- ../library/couchdb-config-ssl-cert-keys/insane/server-key.pem:/etc/ssl/server-key.pem:ro
- couchdbvolume:/opt/couchdb/data
environment:
COUCHDB_USER: admin
COUCHDB_PASSWORD: password
orthanc:
restart: always
image: jodogne/orthanc-plugins
ports:
- 4242:4242
- 8042:8042
nginx:
restart: always
image: openemr/dev-nginx
ports:
- 8100:80
- 9100:440
- 8101:81
- 9101:441
- 8102:82
- 9102:442
- 8103:83
- 9103:443
- 8104:84
- 9104:444
- 8150:90
- 9150:450
- 8151:91
- 9151:451
- 8152:92
- 9152:452
- 8153:93
- 9153:453
- 8154:94
- 9154:454
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ../library/dockers/dev-nginx/dummy-cert:/etc/nginx/dummy-cert:ro
- ../library/dockers/dev-nginx/dummy-key:/etc/nginx/dummy-key:ro
depends_on:
- dev-php-fpm-7-3
- dev-php-fpm-7-4
- dev-php-fpm-8-0
- dev-php-fpm-8-1
- dev-php-fpm-8-2
- dev-php-fpm-7-3-redis
- dev-php-fpm-7-4-redis
- dev-php-fpm-8-0-redis
- dev-php-fpm-8-1-redis
- dev-php-fpm-8-2-redis
dev-php-fpm-7-3:
restart: always
image: openemr/dev-php-fpm:7.3
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-7-3/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-7-4:
restart: always
image: openemr/dev-php-fpm:7.4
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-7-4/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-8-0:
restart: always
image: openemr/dev-php-fpm:8.0
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-8-0/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-8-1:
restart: always
image: openemr/dev-php-fpm:8.1
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-8-1/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-8-2:
restart: always
image: openemr/dev-php-fpm:8.2
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-8-2/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-7-3-redis:
restart: always
image: openemr/dev-php-fpm:7.3-redis
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-7-3-redis/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-7-4-redis:
restart: always
image: openemr/dev-php-fpm:7.4-redis
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-7-4-redis/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-8-0-redis:
restart: always
image: openemr/dev-php-fpm:8.0-redis
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-8-0-redis/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-8-1-redis:
restart: always
image: openemr/dev-php-fpm:8.1-redis
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-8-1-redis/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
dev-php-fpm-8-2-redis:
restart: always
image: openemr/dev-php-fpm:8.2-redis
volumes:
- ../..:/usr/share/nginx/html/openemr
- ../library/dockers/dev-php-fpm-8-2-redis/php.ini:/usr/local/etc/php/php.ini:ro
environment:
OPENEMR_DOCKER_ENV_TAG: insane-dev-docker
redis:
restart: always
image: redis
openldap:
restart: always
image: openemr/dev-ldap:insane
environment:
LDAP_TLS_VERIFY_CLIENT: try
LDAP_TLS_CA_CRT_FILENAME: ca.pem
LDAP_TLS_CRT_FILENAME: server-cert.pem
LDAP_TLS_KEY_FILENAME: server-key.pem
fhir:
restart: always
image: ibmcom/ibm-fhir-server
ports:
- 9443:9443
volumes:
couchdbvolume: {}