Sign inSign up

onezoom/docker-nginx-web2py-min-mysql

By onezoom

•Updated over 1 year ago

A web2py 2.21.1 / python3.8 image with configurable MySQL 8.0 server and nginx+uwsgi http server

Image
0

1.4K

onezoom/docker-nginx-web2py-min-mysql repository overview

⁠docker-nginx-web2py-min-mysql

Build Status Layers

Docker container for nginx+uwsgi with web2py using python 3.8 on Ubuntu 20.04 and a MySQL server, based on onezoom/docker-nginx-web2py-min⁠ with MySQL Server layer based on madharjan/docker-mysql⁠

⁠Features

  • Environment variables to set web2py admin password
  • User-provided appconfig.ini file can be specified
  • Environment variables to create database, user and set password
  • Bats bats-core/bats-core⁠ based test cases

⁠MySQL Server 5.7 (docker-nginx-web2py-min-mysql)

⁠Environment
VariableDefaultExample
DISABLE_MYSQL01 (to disable)
MYSQL_DATABASEtempmydb
MYSQL_USERNAMEmysqlmyuser
MYSQL_PASSWORDmysqlmypass
WEB2PY_ADMINPa55w0rd
DISABLE_UWSGI01 (to disable)
INSTALL_PROJECT01 (to enable)
PROJECT_GIT_REPOhttps://github.com/OneZoom/OZtree⁠
PROJECT_GIT_TAGHEADv5.1.4
PROJECT_APPCONFIG_INI_PATH/etc/appconfig.ini

⁠Build

# clone project
git clone https://github.com/onezoom/docker-nginx-web2py-min-mysql
cd docker-mysql

# build
make

# tests
make run
make test

# clean
make clean

⁠Run

Note: update environment variables below as necessary

# prepare foldor on host for container volumes
sudo mkdir -p /opt/docker/mysql/etc/conf.d
sudo mkdir -p /opt/docker/mysql/lib/
sudo mkdir -p /opt/docker/mysql/log/

# stop & remove previous instances
docker stop mysql
docker rm mysql

# run container
docker run -d \
  -e MYSQL_DATABASE=mydb \
  -e MYSQL_USERNAME=user \
  -e MYSQL_PASSWORD=pass \
  -p 3306:3306 \
  -v /opt/docker/mysql/etc/conf.d:/etc/mysql/conf.d \
  -v /opt/docker/mysql/lib:/var/lib/mysql \
  -v /opt/docker/mysql/log:/var/log/mysql \
  --name mysql \
  onezoom/docker-nginx-web2py-min-mysql:5.7

⁠Systemd Unit File

Note: update environment variables below as necessary

[Unit]
Description=MySQL Server

After=docker.service

[Service]
TimeoutStartSec=0

ExecStartPre=-/bin/mkdir -p /opt/docker/mysql/etc/conf.d
ExecStartPre=-/bin/mkdir -p /opt/docker/mysql/lib
ExecStartPre=-/bin/mkdir -p /opt/docker/mysql/log
ExecStartPre=-/usr/bin/docker stop mysql
ExecStartPre=-/usr/bin/docker rm mysql
ExecStartPre=-/usr/bin/docker pull onezoom/docker-nginx-web2py-min-mysql:5.7

ExecStart=/usr/bin/docker run \
  -e MYSQL_DATABASE=mydb \
  -e MYSQL_USERNAME=user \
  -e MYSQL_PASSWORD=pass \
  -p 3306:3306 \
  -v /opt/docker/mysql/etc/conf.d:/etc/mysql/conf.d \
  -v /opt/docker/mysql/lib/:/var/lib/mysql \
  -v /opt/docker/mysql/log:/var/log/mysql \
  --name mysql \
  onezoom/docker-nginx-web2py-min-mysql:5.7

ExecStop=/usr/bin/docker stop -t 2 mysql

[Install]
WantedBy=multi-user.target

⁠Generate Systemd Unit File

VariableDefaultExample
PORT33068080
VOLUME_HOME/opt/docker/opt/data
NAMEmysqldocker-mysql
MYSQL_DATABASEtempmydb
MYSQL_USERNAMEmysqluser
MYSQL_PASSWORDmysqlpass
# generate mysql.service
docker run --rm \
  -e PORT=3306 \
  -e VOLUME_HOME=/opt/docker \
  -e NAME=docker-mysql \
  -e MYSQL_DATABASE=mydb \
  -e MYSQL_USERNAME=user \
  -e MYSQL_PASSWORD=pass \
  onezoom/docker-nginx-web2py-min-mysql:5.7 \
  mysql-systemd-unit | \
  sudo tee /etc/systemd/system/mysql.service

sudo systemctl enable mysql
sudo systemctl start mysql

Tag summary

Content type

Image

Digest

sha256:f5ced30b2…

Size

290.3 MB

Last updated

over 1 year ago

docker pull onezoom/docker-nginx-web2py-min-mysql