Re: [Wordpress-charmers] [Merge] ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master
Some comments inline Diff comments: > diff --git a/Dockerfile b/Dockerfile > new file mode 100644 > index 000..38866f4 > --- /dev/null > +++ b/Dockerfile > @@ -0,0 +1,55 @@ > +FROM ubuntu:bionic > + > +RUN echo 'debconf debconf/frontend select Noninteractive' | > debconf-set-selections > + > +RUN apt-get update && apt-get -y dist-upgrade \ > +&& apt-get --purge autoremove -y \ > +&& apt-get clean \ > +&& rm -rf /var/lib/apt/lists/* > + > +ENV APACHE_CONFDIR=/etc/apache2 > +ENV APACHE_ENVVARS=/etc/apache2/envvars > + > +RUN apt-get update \ > +&& apt-get install -y --no-install-recommends apache2 \ We should confirm if we want --no-install-recommends for all apt installs. If not, let's comment as to why. > +&& rm -rf /var/lib/apt/lists/* \ > +&& sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' > "$APACHE_ENVVARS" \ > +&& . "$APACHE_ENVVARS" \ > +&& for dir in "$APACHE_LOCK_DIR" "$APACHE_RUN_DIR" "$APACHE_LOG_DIR"; do > rm -rvf "$dir"; mkdir -p "$dir"; chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" > "$dir"; chmod 777 "$dir"; done \ > +&& ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \ > +&& ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \ > +&& ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log" \ > +&& chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" > "$APACHE_LOG_DIR" > + > +RUN echo '' > > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '\tSetHandler application/x-httpd-php' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo 'DirectoryIndex disabled' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo 'DirectoryIndex index.php index.html' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '\tOptions -Indexes' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '\tAllowOverride All' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ Let's switch to a file copy here. > +&& a2enconf docker-php > + > +RUN apt-get update && apt-get install -y curl php libapache2-mod-php > php-mysql php-gd \ > +&& apt-get clean \ > +&& rm -rf /var/lib/apt/lists/* > + > +RUN a2dismod mpm_event \ > +&& a2enmod mpm_prefork > + > +RUN curl -o wordpress.tar.gz -fSL "https://wordpress.org/latest.tar.gz; \ > +&& tar -xzf wordpress.tar.gz -C /usr/src/ \ > +&& rm wordpress.tar.gz \ > +&& chown -R www-data:www-data /usr/src/wordpress \ > +&& rm -rf /var/www/html \ > +&& mv /usr/src/wordpress /var/www/html > + > +COPY --chown=www-data:www-data ./plugins/ /var/www/html/wp-content/plugins/ > +COPY --chown=www-data:www-data ./themes/ /var/www/html/wp-content/themes/ > + > +EXPOSE 80 > +CMD apachectl -D FOREGROUND > diff --git a/Makefile b/Makefile > new file mode 100644 > index 000..92c0edb > --- /dev/null > +++ b/Makefile > @@ -0,0 +1,30 @@ > +build: lint deps > + @echo "Fetching plugins and themes." > + @tox -e fetch > + @echo "Building the image." > + @docker build . -t wordpress:latest > + @echo "Pushing to the prod-is-external registry." > + @docker tag wordpress:latest > prod-is-external.docker-registry.canonical.com/wordpress:latest > + @docker push > prod-is-external.docker-registry.canonical.com/wordpress:latest > + > +deps: > + @echo "Checking dependencies are present" > + which bzr || sudo apt-get install -y bzr > + which git || sudo apt-get install -y git My preference would be to warn on missing packages rather than install, but would be interested if others feel the same. > + > +lint: clean > + @echo "Normalising python layout with black." > + @tox -e black > + @echo "Running flake8" > + @tox -e lint > + > +clean: > + @echo "Cleaning files" > + @rm -rf ./.tox > + @rm -rf ./.pytest_cache > + @rm -rf ./plugins/* > + @rm -rf ./themes/* > + @mkdir -p plugins > + @mkdir -p themes > + > +.PHONY: build lint clean -- https://code.launchpad.net/~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder/+merge/377499 Your team Wordpress Charmers is requested to review the proposed merge of ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master. -- Mailing list: https://launchpad.net/~wordpress-charmers Post to : wordpress-charmers@lists.launchpad.net Unsubscribe : https://launchpad.net/~wordpress-charmers More help : https://help.launchpad.net/ListHelp
[Wordpress-charmers] [Merge] ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/workpress-k8s-image-builder:master
The proposal to merge ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/workpress-k8s-image-builder:master has been updated. Status: Needs review => Superseded For more details, see: https://code.launchpad.net/~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder/+merge/377498 -- Your team Wordpress Charmers is requested to review the proposed merge of ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/workpress-k8s-image-builder:master. -- Mailing list: https://launchpad.net/~wordpress-charmers Post to : wordpress-charmers@lists.launchpad.net Unsubscribe : https://launchpad.net/~wordpress-charmers More help : https://help.launchpad.net/ListHelp
Re: [Wordpress-charmers] [Merge] ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master
This merge proposal is being monitored by mergebot. Change the status to Approved to merge. -- https://code.launchpad.net/~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder/+merge/377499 Your team Wordpress Charmers is requested to review the proposed merge of ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master. -- Mailing list: https://launchpad.net/~wordpress-charmers Post to : wordpress-charmers@lists.launchpad.net Unsubscribe : https://launchpad.net/~wordpress-charmers More help : https://help.launchpad.net/ListHelp
[Wordpress-charmers] [Merge] ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/workpress-k8s-image-builder:master
Barry Price has proposed merging ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/workpress-k8s-image-builder:master. Commit message: Create a Docker image to run the latest Wordpress, with our whitelisted plugins and themes already included. Requested reviews: Wordpress Charmers (wordpress-charmers) For more details, see: https://code.launchpad.net/~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder/+merge/377498 -- Your team Wordpress Charmers is requested to review the proposed merge of ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/workpress-k8s-image-builder:master. diff --git a/.gitignore b/.gitignore new file mode 100644 index 000..ac6bb88 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +plugins/ +themes/ +.tox/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000..38866f4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,55 @@ +FROM ubuntu:bionic + +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections + +RUN apt-get update && apt-get -y dist-upgrade \ +&& apt-get --purge autoremove -y \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* + +ENV APACHE_CONFDIR=/etc/apache2 +ENV APACHE_ENVVARS=/etc/apache2/envvars + +RUN apt-get update \ +&& apt-get install -y --no-install-recommends apache2 \ +&& rm -rf /var/lib/apt/lists/* \ +&& sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' "$APACHE_ENVVARS" \ +&& . "$APACHE_ENVVARS" \ +&& for dir in "$APACHE_LOCK_DIR" "$APACHE_RUN_DIR" "$APACHE_LOG_DIR"; do rm -rvf "$dir"; mkdir -p "$dir"; chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$dir"; chmod 777 "$dir"; done \ +&& ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \ +&& ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \ +&& ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log" \ +&& chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" "$APACHE_LOG_DIR" + +RUN echo '' > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo '\tSetHandler application/x-httpd-php' >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo '' >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo 'DirectoryIndex disabled' >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo 'DirectoryIndex index.php index.html' >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo '' >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo '\tOptions -Indexes' >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo '\tAllowOverride All' >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& echo '' >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ +&& a2enconf docker-php + +RUN apt-get update && apt-get install -y curl php libapache2-mod-php php-mysql php-gd \ +&& apt-get clean \ +&& rm -rf /var/lib/apt/lists/* + +RUN a2dismod mpm_event \ +&& a2enmod mpm_prefork + +RUN curl -o wordpress.tar.gz -fSL "https://wordpress.org/latest.tar.gz; \ +&& tar -xzf wordpress.tar.gz -C /usr/src/ \ +&& rm wordpress.tar.gz \ +&& chown -R www-data:www-data /usr/src/wordpress \ +&& rm -rf /var/www/html \ +&& mv /usr/src/wordpress /var/www/html + +COPY --chown=www-data:www-data ./plugins/ /var/www/html/wp-content/plugins/ +COPY --chown=www-data:www-data ./themes/ /var/www/html/wp-content/themes/ + +EXPOSE 80 +CMD apachectl -D FOREGROUND diff --git a/Makefile b/Makefile new file mode 100644 index 000..14a5b83 --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +build: lint deps + @echo "Fetching plugins and themes." + @tox -e fetch + @echo "Building the image." + @docker build . -t wordpress + +deps: + @echo "Checking dependencies are present" + which bzr || sudo apt-get install -y bzr + which git || sudo apt-get install -y git + +lint: clean + @echo "Normalising python layout with black." + @tox -e black + @echo "Running flake8" + @tox -e lint + +clean: + @echo "Cleaning files" + @rm -rf ./.tox + @rm -rf ./.pytest_cache + @rm -rf ./plugins/* + @rm -rf ./themes/* + @mkdir -p plugins + @mkdir -p themes + +.PHONY: build lint clean diff --git a/fetcher.py b/fetcher.py new file mode 100755 index 000..2fe005c --- /dev/null +++ b/fetcher.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python3 + +import os +import shutil +import subprocess +import urllib.request +import zipfile + + +zip_plugins_to_get = { +# please keep these in alphabetical order +'404page', +'all-in-one-event-calendar', +'coschedule-by-todaymade', +'elementor', +'essential-addons-for-elementor-lite', +'favicon-by-realfavicongenerator', +'feedwordpress', +'fruitful-shortcodes', +'genesis-columns-advanced', +'line-break-shortcode', +
Re: [Wordpress-charmers] [Merge] ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master
Thanks, addressed 2/3, will push a fresh branch and we can discuss the other later today. Diff comments: > diff --git a/Dockerfile b/Dockerfile > new file mode 100644 > index 000..38866f4 > --- /dev/null > +++ b/Dockerfile > @@ -0,0 +1,55 @@ > +FROM ubuntu:bionic > + > +RUN echo 'debconf debconf/frontend select Noninteractive' | > debconf-set-selections > + > +RUN apt-get update && apt-get -y dist-upgrade \ > +&& apt-get --purge autoremove -y \ > +&& apt-get clean \ > +&& rm -rf /var/lib/apt/lists/* > + > +ENV APACHE_CONFDIR=/etc/apache2 > +ENV APACHE_ENVVARS=/etc/apache2/envvars > + > +RUN apt-get update \ > +&& apt-get install -y --no-install-recommends apache2 \ This particular case just stops the ssl-cert package from being installed (we're not terminating TLS here). I'll add a comment. > +&& rm -rf /var/lib/apt/lists/* \ > +&& sed -ri 's/^export ([^=]+)=(.*)$/: ${\1:=\2}\nexport \1/' > "$APACHE_ENVVARS" \ > +&& . "$APACHE_ENVVARS" \ > +&& for dir in "$APACHE_LOCK_DIR" "$APACHE_RUN_DIR" "$APACHE_LOG_DIR"; do > rm -rvf "$dir"; mkdir -p "$dir"; chown "$APACHE_RUN_USER:$APACHE_RUN_GROUP" > "$dir"; chmod 777 "$dir"; done \ > +&& ln -sfT /dev/stderr "$APACHE_LOG_DIR/error.log" \ > +&& ln -sfT /dev/stdout "$APACHE_LOG_DIR/access.log" \ > +&& ln -sfT /dev/stdout "$APACHE_LOG_DIR/other_vhosts_access.log" \ > +&& chown -R --no-dereference "$APACHE_RUN_USER:$APACHE_RUN_GROUP" > "$APACHE_LOG_DIR" > + > +RUN echo '' > > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '\tSetHandler application/x-httpd-php' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo 'DirectoryIndex disabled' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo 'DirectoryIndex index.php index.html' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo >> "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '\tOptions -Indexes' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '\tAllowOverride All' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ > +&& echo '' >> > "$APACHE_CONFDIR/conf-available/docker-php.conf" \ Good idea, thanks. Will do. > +&& a2enconf docker-php > + > +RUN apt-get update && apt-get install -y curl php libapache2-mod-php > php-mysql php-gd \ > +&& apt-get clean \ > +&& rm -rf /var/lib/apt/lists/* > + > +RUN a2dismod mpm_event \ > +&& a2enmod mpm_prefork > + > +RUN curl -o wordpress.tar.gz -fSL "https://wordpress.org/latest.tar.gz; \ > +&& tar -xzf wordpress.tar.gz -C /usr/src/ \ > +&& rm wordpress.tar.gz \ > +&& chown -R www-data:www-data /usr/src/wordpress \ > +&& rm -rf /var/www/html \ > +&& mv /usr/src/wordpress /var/www/html > + > +COPY --chown=www-data:www-data ./plugins/ /var/www/html/wp-content/plugins/ > +COPY --chown=www-data:www-data ./themes/ /var/www/html/wp-content/themes/ > + > +EXPOSE 80 > +CMD apachectl -D FOREGROUND > diff --git a/Makefile b/Makefile > new file mode 100644 > index 000..92c0edb > --- /dev/null > +++ b/Makefile > @@ -0,0 +1,30 @@ > +build: lint deps > + @echo "Fetching plugins and themes." > + @tox -e fetch > + @echo "Building the image." > + @docker build . -t wordpress:latest > + @echo "Pushing to the prod-is-external registry." > + @docker tag wordpress:latest > prod-is-external.docker-registry.canonical.com/wordpress:latest > + @docker push > prod-is-external.docker-registry.canonical.com/wordpress:latest > + > +deps: > + @echo "Checking dependencies are present" > + which bzr || sudo apt-get install -y bzr > + which git || sudo apt-get install -y git There is precedent in a few charm Makefiles, but we can discuss on a call. Leaving in place pending discussion. > + > +lint: clean > + @echo "Normalising python layout with black." > + @tox -e black > + @echo "Running flake8" > + @tox -e lint > + > +clean: > + @echo "Cleaning files" > + @rm -rf ./.tox > + @rm -rf ./.pytest_cache > + @rm -rf ./plugins/* > + @rm -rf ./themes/* > + @mkdir -p plugins > + @mkdir -p themes > + > +.PHONY: build lint clean -- https://code.launchpad.net/~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder/+merge/377499 Your team Wordpress Charmers is requested to review the proposed merge of ~barryprice/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master into ~wordpress-charmers/charm-k8s-wordpress/+git/wordpress-k8s-image-builder:master. -- Mailing list: https://launchpad.net/~wordpress-charmers Post to : wordpress-charmers@lists.launchpad.net Unsubscribe : https://launchpad.net/~wordpress-charmers More help : https://help.launchpad.net/ListHelp