Skip to content

DRNJ Consultancy

DRNJ Consultancy

Azure Multi-Container YAML

Background

As an exercise I had run WordPress via a Docker Compose file locally and then within Azure (I would not recommend this for “production” systems, this was merely an intellectual exercise and I based my ideas on this article amongst other.

Running containers within Azure is a little confusing for the beginner as, typical for Microsoft, there are many ways to do the same thing and I noted that it is possible to run multiple containers with a YAML file as opposed to a Docker Compose file.

So I created a YAML file which mirrored my Compose file and tried to run it

az container create --resource-group mygroup --dns-name-label myyaml  --file deploy-wp.yaml

With a YAML file:

apiVersion: 2021-09-01
location: uksouth
name: wordpress-group
type: Microsoft.ContainerInstance/containerGroups
properties:
containers:
- name: wordpress
properties:
image: wordpress:6.4
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 80
environmentVariables:
- name: WORDPRESS_DB_HOST
value: db
- name: WORDPRESS_DB_USER
value: wordpressuser
- name: WORDPRESS_DB_PASSWORD
value: wordpresspass
- name: WORDPRESS_DB_NAME
value: wordpressdb
- name: mysql
properties:

image: mysql:8.0.27
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 3306
- port: 33060
environmentVariables:
- name: MYSQL_ROOT_PASSWORD
value: rootpass
- name: MYSQL_DATABASE
value: wordpressdb
- name: MYSQL_USER
value: wordpressuser
- name: MYSQL_PASSWORD
value: wordpresspass
osType: Linux
ipAddress:
type: Public
dnsNameLabel: testwordpress
ports:
- protocol: tcp
port: 80
- protocol: tcp
port: 3306
- protocol: tcp
port: 33060

The containers started and I could read the logs via

az container logs –resource-group mygroup –name wordpress-group –container-name wordpress
az container logs –resource-group mygroup –name wordpress-group –container-name mysql

I could also get the FQDN of wordpress via

az container show --resource-group mygroup --name wordpress-group  --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table

The Problem

I then browsed to the port 80 endpoint for the WordPress container (URL obtained from the Azure portal) and….Error….wordpress could not connect to the database

The Solution

After much head scratching and searching I found an article that suggested using 127.0.0.1 for the “db name” in the yaml file

          - name: WORDPRESS_DB_HOST
value: 127.0.0.1:3306
Azure, Docker, Uncategorised

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Idealist by NewMediaThemes