This guide deploys DomainMOD using Docker Compose with Ansible automation for domain asset management.
- name: Deploy DomainMOD with Docker
hosts: domainmod_docker
become: true
vars:
domainmod_project_dir: /opt/domainmod
domainmod_db_password: "{{ lookup('password', '/dev/null chars=ascii_letters,digits length=32') }}"
mysql_root_password: "{{ lookup('password', '/dev/null chars=ascii_letters,digits length=32') }}"
tasks:
- name: Install Docker
ansible.builtin.package:
name:
- docker
- docker-compose
state: present
- name: Create DomainMOD project directory
ansible.builtin.file:
path: "{{ domainmod_project_dir }}"
state: directory
mode: "0755"
- name: Deploy docker-compose.yml
ansible.builtin.copy:
dest: "{{ domainmod_project_dir }}/docker-compose.yml"
mode: "0644"
content: |
version: '3.8'
services:
domainmod:
image: domainmod/domainmod:latest
ports:
- "8080:80"
environment:
- DB_HOST=mysql
- DB_NAME=domainmod
- DB_USER=domainmod
- DB_PASS=${DOMAINMOD_DB_PASSWORD}
depends_on:
- mysql
mysql:
image: mysql:8.0
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=domainmod
- MYSQL_USER=domainmod
- MYSQL_PASSWORD=${DOMAINMOD_DB_PASSWORD}
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
- name: Deploy .env file
ansible.builtin.copy:
dest: "{{ domainmod_project_dir }}/.env"
mode: "0600"
content: |
DOMAINMOD_DB_PASSWORD={{ domainmod_db_password }}
MYSQL_ROOT_PASSWORD={{ mysql_root_password }}
ansible-playbook -i inventory.ini domainmod-docker-install.yml
Need help with DomainMOD container deployments? We provide consulting for domain management automation. Contact office@linux-server-admin.com or visit our contact page.