diff --git a/.travis.yml b/.travis.yml index 319a63e..ba0580d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,18 +11,17 @@ branches: before_script: - env | sort - - name="roundcubemail" - - image="roundcube/roundcubemail:${VERSION}${VARIANT:+-$VARIANT}" - dir="php-${VARIANT}" script: - - travis_retry docker build -t "$image" "$dir" - -after_script: + - cd "$dir" + - docker-compose build - docker images - - docker run --name "$name" -d "$image" "$dir" - - docker ps - - docker logs "$name" + - travis_retry docker-compose up -d && sleep 60 + - docker-compose ps + - docker-compose logs + - docker-compose ps "roundcubedb" | grep "Up" + - docker-compose ps "roundcube" | grep "Up" notifications: email: false diff --git a/php-apache/docker-compose.yml b/php-apache/docker-compose.yml new file mode 100644 index 0000000..d164892 --- /dev/null +++ b/php-apache/docker-compose.yml @@ -0,0 +1,81 @@ +version: "2" + +services: + roundcube: + build: ./ + container_name: roundcube + #restart: always + depends_on: + - roundcubedb + links: + - roundcubedb + ports: + - 80:80 + volumes: + - /srv/roundcube/html:/var/www/html + environment: + - ROUNDCUBEMAIL_DB_TYPE=mysql + - ROUNDCUBEMAIL_DB_HOST=roundcubedb # same as mysql container name + - ROUNDCUBEMAIL_DB_NAME=roundcube # same as mysql MYSQL_DATABASE env name + - ROUNDCUBEMAIL_DB_USER=roundcube # same as mysql MYSQL_USER env name + - ROUNDCUBEMAIL_DB_PASSWORD=roundcubedbpass # same as mysql MYSQL_PASSWORD env name + + roundcubedb: + image: mariadb:latest + container_name: roundcubedb + restart: always + command: --character_set_client=utf8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --character-set-client-handshake=FALSE + ports: + - 3306:3306 + volumes: + - /srv/roundcube/db:/var/lib/mysql + environment: + - MYSQL_ROOT_PASSWORD=mysqlrootpassword + - MYSQL_DATABASE=roundcube + - MYSQL_USER=roundcube + - MYSQL_PASSWORD=roundcubedbpass + + # Sample mail server to use with RoundCube: https://github.com/tomav/docker-mailserver +# mailserver: +# image: tvial/docker-mailserver:latest +# hostname: mail +# domainname: +# container_name: mail +# restart: always +# ports: +# # receiving email from other mailservers +# - "25:25" +# # SSL & TLS Client email submission (SMTP) +# - "465:465" +# - "587:587" +# # StartTLS & TLS/SSL IMAP client +# - "143:143" +# - "993:993" +# # POP3 & TLS/SSL POP3 client +# - "110:110" +# - "995:995" +# # Manage Sieve port +# - "4190:4190" +# environment: +# - DMS_DEBUG=0 +# - ONE_DIR=1 +# - ENABLE_CLAMAV=1 +# - ENABLE_FAIL2BAN=1 +# - ENABLE_POSTGREY=1 +# - ENABLE_MANAGESIEVE=1 +# # If you need SSL connection, you can provide your own certificates +# #- SSL_TYPE=manual +# #- SSL_CERT_PATH=/etc/letsencrypt/fullchain.pem +# #- SSL_KEY_PATH=/etc/letsencrypt/privkey.pem +# cap_add: +# - NET_ADMIN +# - SYS_PTRACE +# volumes: +# - /srv/mail/data:/var/mail +# - /srv/mail/state:/var/mail-state +# # For proper delivery, generate DKIM keys in /srv/mail/setup +# - /srv/mail/setup:/tmp/docker-mailserver +# - /etc/localtime:/etc/localtime:ro +# - /etc/timezone:/etc/timezone:ro +# # If you need SSL connection, you can provide your own certificates +# # - ./certs:/etc/letsencrypt diff --git a/php-fpm/docker-compose.yml b/php-fpm/docker-compose.yml new file mode 100644 index 0000000..dac7526 --- /dev/null +++ b/php-fpm/docker-compose.yml @@ -0,0 +1,102 @@ +version: "2" + +services: + roundcube: + build: ./ + container_name: roundcube + #restart: always + depends_on: + - roundcubedb + links: + - roundcubedb + ports: + - 9000:9000 + volumes: + - /srv/roundcube/html:/var/www/html + environment: + - ROUNDCUBEMAIL_DB_TYPE=pgsql + - ROUNDCUBEMAIL_DB_HOST=roundcubedb # same as pgsql container name + - ROUNDCUBEMAIL_DB_NAME=roundcube # same as pgsql POSTGRES_DB env name + - ROUNDCUBEMAIL_DB_USER=roundcube # same as pgsql POSTGRES_USER env name + - ROUNDCUBEMAIL_DB_PASSWORD=roundcube # same as pgsql POSTGRES_PASSWORD env name + + roundcubedb: + image: postgres:latest + container_name: roundcubedb + restart: always + ports: + - 5432:5432 + volumes: + - /srv/roundcube/db:/var/lib/postgresql/data + environment: + - POSTGRES_DB=roundcube + - POSTGRES_USER=roundcube + - POSTGRES_PASSWORD=roundcube + + roundcubenginx: + image: nginx:latest + container_name: roundcubenginx + restart: always + ports: + - 80:80 + # If you need SSL connection + # - '443:443' + depends_on: + - roundcube + links: + - roundcube + volumes: + - /srv/roundcube/html:/var/www/html + # TODO Provide a custom nginx conf + #- ./nginx.conf:/etc/nginx/nginx.conf:ro + # If you need SSL connection, you can provide your own certificates + # - ./certs:/etc/letsencrypt + # - ./certs-data:/data/letsencrypt + environment: + - NGINX_HOST=localhost # set your local domain or your live domain + # - NGINX_CGI=roundcube:9000 # same as roundcube container name + + # Sample mail server to use with RoundCube: https://github.com/tomav/docker-mailserver +# mailserver: +# image: tvial/docker-mailserver:latest +# hostname: mail +# domainname: +# container_name: mail +# restart: always +# ports: +# # receiving email from other mailservers +# - "25:25" +# # SSL & TLS Client email submission (SMTP) +# - "465:465" +# - "587:587" +# # StartTLS & TLS/SSL IMAP client +# - "143:143" +# - "993:993" +# # POP3 & TLS/SSL POP3 client +# - "110:110" +# - "995:995" +# # Manage Sieve port +# - "4190:4190" +# environment: +# - DMS_DEBUG=0 +# - ONE_DIR=1 +# - ENABLE_CLAMAV=1 +# - ENABLE_FAIL2BAN=1 +# - ENABLE_POSTGREY=1 +# - ENABLE_MANAGESIEVE=1 +# # If you need SSL connection, you can provide your own certificates +# #- SSL_TYPE=manual +# #- SSL_CERT_PATH=/etc/letsencrypt/fullchain.pem +# #- SSL_KEY_PATH=/etc/letsencrypt/privkey.pem +# cap_add: +# - NET_ADMIN +# - SYS_PTRACE +# volumes: +# - /srv/mail/data:/var/mail +# - /srv/mail/state:/var/mail-state +# # For proper delivery, generate DKIM keys in /srv/mail/setup +# - /srv/mail/setup:/tmp/docker-mailserver +# - /etc/localtime:/etc/localtime:ro +# - /etc/timezone:/etc/timezone:ro +# # If you need SSL connection, you can provide your own certificates +# # - ./certs:/etc/letsencrypt