# a basic wp setup using docker define sunet::wordpress ( $name = undef, $db_host = undef, $wordpress_version = "4.1.1", $myqsl_version = "5.7") { $db_hostname = $db_host ? { undef => "mysql_${sanitized_name}.docker", default => $db_host } $sanitized_name = regsubst($name, '[^0-9A-Za-z.\-]', '-', 'G') $pwd = hiera('${sanitized_name}_db_password','NOT_SET_IN_HIERA') file {"/data/${sanitized_name}/html": ensure => directory } sunet::docker_run { name => "wordpress_${sanitized_name}", image => "wordpress", imagetag => $wordpress_version, volumes => ["/data/${sanitized_name}/html:/var/www/html"], port => ["8080:80"] environment => [ "WORDPRESS_DB_HOST=${db_hostname}", "WORDPRESS_DB_USER=${sanitized_name}", "WORDPRESS_DB_NAME=${sanitized_name}", "WORDPRESS_DB_PASSWORD=${pwd}" ] } if (!$db_host) { file {"/data/${sanitized_name}/db": ensure => directory } sunet::docker_run { name => "mysql_${sanitized_name}", image => "mysql", imagetag => $mysql_version, volumes => ["/data/${sanitized_name}/db:/var/lib/mysql"], environment => ["MYSQL_USER=${sanitized_name}", "MYSQL_PASSWORD=${pwd}", "MYSQL_ROOT_PASSWORD=${pwd}", "MYSQL_DATABASE=${sanitized_name}"] } } }