Incapio - Blog Posts © 2022 by Incapio is licensed under CC BY-SA 4.0 

Install WordPress on Google Cloud Run | GCP | Container Registry

Updated: Feb 2

Prerequisites:

You will need the following items to complete this tutorial.

  • WordPress Docker image in Google Container Registry

  • A Cloud SQL Instance up and running with MySQL.

  • Environment Variables.

  • A Domain. (Register a Domain, or else use an existing Domain).

Step - 1: Pull and Push WordPress Image to Google Container Registry.

  • To begin, pull and push the bitnami wordpress image to Google Container Registry from the Docker Hub. Use the Cloud SDK or Cloud Shell to run the commands below.

  • Example:

docker pull bitnami/wordpress
docker tag bitnami/wordpress gcr.io/elegant-canto-331917/bitnami-wordpress
docker push gcr.io/elegant-canto-331917/bitnami-wordpress
info@cloudshell:~ (elegant-canto-331917)$ docker pull bitnami/wordpress
Using default tag: latest
latest: Pulling from bitnami/wordpress
be4dd8fa80cd: Pull complete
87d5d5d80dcb: Pull complete
72276dc2231e: Pull complete
ae418799c487: Pull complete
52e445f40546: Pull complete
a1a3cb231147: Pull complete
26fb68febdb7: Pull complete
6ba9e60dd627: Pull complete
84a4049a0a32: Pull complete
7f4b439880db: Pull complete
ba21f435eab2: Pull complete
5ab426f05241: Pull complete
906fa1ff1880: Pull complete
e6d3ef41d9c4: Pull complete
5c0b03980544: Pull complete
06107a038509: Pull complete
f20ad7b50f98: Pull complete
f5fa7aa05063: Pull complete
38f95d451884: Pull complete
57266b8aa6f4: Pull complete
Digest: sha256:0941fa5c418d6d6044ccf22545ecd8c46fe60b15e630540110309ce0cba38d4c
Status: Downloaded newer image for bitnami/wordpress:latest
docker.io/bitnami/wordpress:latest
info@cloudshell:~ (elegant-canto-331917)$ docker tag bitnami/wordpress gcr.io/elegant-canto-331917/bitnami-wordpress
info@cloudshell:~ (elegant-canto-331917)$ docker push gcr.io/elegant-canto-331917/bitnami-wordpress
Using default tag: latest
The push refers to repository [gcr.io/elegant-canto-331917/bitnami-wordpress]
4a1cded640f2: Preparing
5f2aa59ddddf: Preparing
7a13bd4b7e00: Preparing
eefff3efd0bb: Preparing
bd09d5bcf057: Preparing
latest: digest: sha256:0941fa5c418d6d6044ccf22545ecd8c46fe60b15e630540110309ce0cba38d4c size: 4516
info@cloudshell:~ (elegant-canto-331917)$
  • To learn more about pulling and pushing Docker images to the container registry, as well as particular versioning, see this page.

  • Finally, Navigate to the container registry images interface in the cloud console to verify the pushed image in the container registry.

Step - 2: Create a Cloud SQL Instance with MySQL.

  • In the Console, Navigate to Cloud SQL, Create a new instance with MYSQL version 8.0, add "0.0.0.0/0" under Authorized networks and create the instance.

  • Lastly, In the Cloud SQL interface, Navigate to Databases and create a new database for WordPress. For example, "my_wordpress_database".

Step - 3. Installing WordPress on Google Cloud Run.

  • Navigate to the Cloud Run interface in the Google cloud console and click on the "Create Service" option to deploy the WordPress.

  • Choose the "Deploy one revision from an existing container image" option in the create service interface and select the bitnami WordPress image from the container registry.

  • Then, type the service name and choose the region and specify the CPU allocation, pricing and auto-scaling options. Also, select the "Allow all traffic" option in the ingress and select the "Allow unauthenticated invocations" in the Authentication.

  • Next, Expand the "Container, Variables & Secrets, Connections, Security" option and type "8080" in the container port under the container tab.

  • Next, switch to the Variables tab, and add the following variables.

  • In the environment variables tab, add the following variable. Please remember to substitute the WordPress username, password, email, database host, port, username, and password with your values.

Environment Variable Name

Value

Notes

WORDPRESS_USERNAME

​yourusername

WordPress administrator username. For example, manoj.

WORDPRESS_PASSWORD

​PassWord

WordPress administrator password. For example, Admin@123

WORDPRESS_EMAIL

WordPress application email. For example, manoj@incapio.org

WORDPRESS_DATABASE_HOST

35.239.118.173

Cloud SQL instance Public IP Address.

WORDPRESS_DATABASE_PORT_NUMBER

3306

Port used by the MariaDB or MySQL server. By default, 3306.

WORDPRESS_DATABASE_NAME

Your_WordPress_Database

Database name that WordPress will use to connect with the database. Refer Step -2.

WORDPRESS_DATABASE_USER

root

Database user that WordPress will use to connect with the database. By default, Cloud SQL username is root.

WORDPRESS_DATABASE_PASSWORD

Your_CloudSQL_Instance_Password

Database password that WordPress will use to connect with the database. CloudSQL instance password. Refer Step - 2.

  • Finally, click on the "create" option to deploy the WordPress on Google Cloud Run.

  • To visit the website, click the URL once the deployment is complete. Please keep in mind that remembering the URL each time you want to access the website is difficult. Refer the Step-4 and assign a custom(your) domain to the Cloud Run service..

Step - 4. Assign a custom domain to your WordPress Cloud Run Service.

  • Navigate to the Cloud Run interface and click on the "Manage Custom Domains" option,

  • Click on the "Add Mapping" option in the Manage Custom Domains interface to point to your custom domain

  • Select the service to which you're mapping the custom domain from the Add Mapping interface.

  • Enter your domain name and click on continue to verify ownership of the domain.

  • Unless you bought your domain from Google, you must prove ownership before using it.

  • In case, If you have already verified the ownership of the domain, choose the domain from the "Select a verified domain" drop-down list and type the subdomain name in the "Specify Subdomain" field or leave it to a blank to point to the root domain.

  • Then, click on the "continue" option to update your DNS record at your domain registrar.

  • Lastly, add a CNAME record in your domain DNS points to "ghs.googlehosted.com."

  • Finally, Click on the "Done" option in the add mapping interface.

  • When the domain mapping is finished, navigate your domain URL to browse the website.

Conclusion:

Here are some recommended tips and tricks.

  • Custom domain mapping typically takes a long time. It usually takes a few minutes to load after the domain mapping is completed.

  • Keep in mind that if you disable the container registry service by accident, the Cloud Run service will collapse, and your website will become unavailable.

154 views0 comments

Do you need assistance? Visit Forum to join the conversation.