Skip to content

Instantly share code, notes, and snippets.

@max-peter
Last active October 18, 2019 11:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save max-peter/d112c3a3ab0601ae7bbd29582a983e6a to your computer and use it in GitHub Desktop.
Save max-peter/d112c3a3ab0601ae7bbd29582a983e6a to your computer and use it in GitHub Desktop.
# 2018-02-19 cironet.eu Ubuntu Server Docker on Azure with Wordpress MariaDB Letsencrypt
# check status docker
sudo systemctl status docker
 
 
Create swapfile
Create a swap file to prevent your MariaDB or WordPress containers from running out of memory under load.
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
 
Create non-root user account for Docker (recommended)
You can execute docker commands as root, but it’s recommended to create a normal user account and add that user to the docker group. For security reasons, you shouldn’t generally be performing tasks on your Linux box as root. Instead, add a regular user account to the sudo (Ubuntu) or wheel (CentOS) group so you can execute commands as sudo.
 
sudo useradd dockeruser
sudo usermod -aG docker dockeruser
sudo usermod -aG sudo dockeruser
login dockeruser
 
sudo useradd wp01user
sudo usermod -aG docker wp01user
sudo usermod -aG sudo wp01user
login wp01user
 
# Bash Script Setup Docker Images for NGINX Proxy with LetsEncrypt, Wordpress and MariaDB
 
mkdir $HOME/nginx
mkdir $HOME/certs
mkdir $HOME/vhost.d
mkdir $HOME/www.cironet.eu
...
mkdir yourdomain2com (optional)
 
cd $HOME/nginx
nano docker-compose.yml
 
proxy:
image: jwilder/nginx-proxy:latest
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- /home/wp01root/vhost.d:/etc/nginx/vhost.d
- /home/wp01root/certs:/etc/nginx/certs:ro
- /usr/share/nginx/html
proxy-companion:
image: jrcs/letsencrypt-nginx-proxy-companion
restart: always
volumes:
- /home/wp01root/certs:/etc/nginx/certs:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes_from:
- proxy
 
 
cd $HOME/www.cironet.eu
nano docker-compose.yml
 
wordpress:
image: wordpress
restart: always
links:
- mariadb:mysql
environment:
- VIRTUAL_HOST=www.cironet.eu,cironet.eu
- LETSENCRYPT_HOST=www.cironet.eu,cironet.eu
- LETSENCRYPT_EMAIL=rootmessages@cironet.eu
expose:
- 80
- 443
volumes_from:
- cironeteu_wordpress_data
volumes:
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
mariadb:
image: mariadb
restart: always
environment:
- MYSQL_ROOT_PASSWORD=#secret#
- MYSQL_DATABASE=wordpress
volumes_from:
- cironeteu_mariadb_data
 
# create data-only volumes and link to container:image
docker create --name cironeteu_mariadb_data -v /var/lib/mysql mariadb
docker create --name cironeteu_wordpress_data -v /var/www/html wordpress
 
# create vhost.d for nginx host
cd $HOME/vhost.d
nano www.cironet.eu
 
server_tokens off;
client_max_body_size 100m;
 
# create uploads.ini
cd $HOME/www.cironet.eu
nano uploads.ini
 
file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 1800
 
# Start Container
cd $HOME/nginx
docker-compose up -d
cd $HOME/www.cironet.eu
docker-compose up -d
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment