Skip to content
Snippets Groups Projects
Commit 383797d3 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Latest changes

parent 041618eb
Branches
No related tags found
No related merge requests found
FROM ubuntu:14.04 FROM wordpress:latest
MAINTAINER Maciej Osyda <maciej.osyda@gmail.com> MAINTAINER Open Tools <office@open-tools.net>
RUN DEBIAN_FRONTEND=noninteractive apt-get -y install unzip curl RUN apt-get update
ADD run.sh /run.sh RUN apt-get update \
RUN chmod +x /run.sh && DEBIAN_FRONTEND=noninteractive apt-get install -o Dpkg::Options::='--force-confnew' -y --no-install-recommends libapache2-mod-php5 php5-mysql
RUN mkdir -p /var/www/html
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends unzip curl wget sudo vim aptitude less
RUN rm -rf /var/lib/apt/lists/*
ADD install-wc.sh /var/www/html/install-wc.sh RUN curl -L "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" -o /usr/bin/wp-cli && \
RUN chmod +x /var/www/html/install-wc.sh chmod +x /usr/bin/wp-cli
# apache config ADD disable-curl.php /var/www/html/wp-content/plugins/disable-curl/disable-curl.php
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data ADD install-wc.sh /install-wc.sh
RUN chown -R www-data:www-data /var/www/ RUN chmod +x /install-wc.sh && chown www-data.www-data /install-wc.sh
VOLUME /var/www/html VOLUME ["/var/www/html"]
ENTRYPOINT ["/run.sh"]
...@@ -2,12 +2,3 @@ ...@@ -2,12 +2,3 @@
Docker data container for woocommerce. Docker data container for woocommerce.
Contains wordpress + woocommerce installation script. Contains wordpress + woocommerce installation script.
This image is hosted on dockerhub and should be run with docker-compose together with repos below:
#### docker-compose specification file and start script
https://github.com/SeamlessDistribution/woocommerce-seqr-payment-gateway-docker
#### Seqr payment plugin
https://github.com/SeamlessDistribution/woocommerce-seqr-payment-gateway
#!/bin/bash
if [ $# -lt 2 ]; then
echo
echo " add-docker-vhost.sh DOMAINNAME PORT"
echo
echo " Add a virtual host entry for DOMAINNAME.dev that ProxyPasses to the given port on localhost."
echo " Needs admin privileges and thus should be run through sudo."
exit
fi
NAME=$1
PORT=$2
sudo echo "<VirtualHost *:80>
ServerName $NAME.dev
ServerAdmin $NAME@demo.open-tools.net
ProxyPreserveHost on
ProxyPass / http://127.0.0.1:$PORT/
ProxyPassReverse / http://127.0.0.1:$PORT/
</VirtualHost>
" >> /etc/apache2/sites-enabled/development.conf
service apache2 restart
echo "Created virtual Host $NAME.dev, proxied on port $PORT"
<?php
/**
* Plugin Name: Disable Curl
* Plugin URI: http://www.open-tools.net/
* Description: Disables CURL transport and fix connection problems
* Author: OpenTools
* Author URI: http://www.open-tools.net
* Version: 0.1
* Text Domain: disable-curl
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
add_filter( 'http_api_transports', function()
{
return array( 'streams' );
});
#!/bin/bash -x #!/bin/bash -x
if [ -z "$1" ] WC_HOST=$1
then WC_SITENAME=${2:-OpenTools WC Test Site}
echo "First argument should be a wordpress version (at least 3.7). No version supplied" WC_VER=$3
exit 1
fi
if [ -z "$2" ] cd /var/www/html
then
echo "Second argument should be a wordpress version. No version supplied"
exit 1
fi
# Wait for MySQL pwd
while ! mysqladmin ping -h localhost --silent; do # sudo -u www-data /usr/bin/wp-cli core download --version=$1 --allow-root
sleep 1 # sudo -u www-data /usr/bin/wp-cli core config --dbname=wordpress --dbuser=root --allow-root
sudo -u www-data /usr/bin/wp-cli core install --url="http://wc-$WC_HOST.dev/" --title="${WC_SITENAME}" --admin_user=opentools --admin_password=opentools --admin_email="wc-${WC_HOST}@demo.open-tools.net"
sudo -u www-data /usr/bin/wp-cli db query --allow-root "UPDATE wp_options SET option_value='http://wc-${WC_HOST}.dev/' WHERE option_name IN ('siteurl', 'home')"
for p in debug-bar debug-bar-actions-and-filters-addon debug-bar-hook-log; do
sudo -u www-data /usr/bin/wp-cli plugin install $p --activate
done done
sudo -u www-data /usr/bin/wp-cli plugin update --all
mysql -u root -e "CREATE DATABASE IF NOT EXISTS \`wordpress\` CHARACTER SET utf8 COLLATE utf8_general_ci;" # WooCommerce should NOT be updated!
if [ -z "$WC_VER" ]; then
sudo -u www-data /usr/bin/wp-cli plugin install woocommerce --activate
sudo -u www-data /usr/bin/wp-cli plugin update woocommerce
else
sudo -u www-data /usr/bin/wp-cli plugin install woocommerce --activate --version="$WC_VER"
fi
cd /var/www/html # Disable broken CURL transport (API has changed, but WP never updated)
/var/www/html/wp-cli core download --version=$1 --allow-root # CANNOT BE DONE IN wp-config.php, BECAUSE THEN wp-cli BREAKS (FILTERS ARE NOT AVAILBLE)
/var/www/html/wp-cli core config --dbname=wordpress --dbuser=root --allow-root sudo -u www-data /usr/bin/wp-cli plugin activate disable-curl
/var/www/html/wp-cli core install --url=http://localhost:8080/wordpress/ --title=WordPress --admin_user=admin --admin_password=admin123 --admin_email=somefakeemail@fakedomain.com --allow-root sudo -u www-data /usr/bin/wp-cli plugin activate woocommerce-advanced-ordernumbers/woocommerce-advanced-ordernumbers
/var/www/html/wp-cli db query --allow-root "UPDATE wp_options SET option_value='http://localhost:8080' WHERE option_name IN ('siteurl', 'home')" sudo -u www-data /usr/bin/wp-cli plugin activate woocommerce-shipping-by-rules/woocommerce-advanced-shipping-by-rules
# Before we can setup the menu, we need to run through the WC setup wizzard!
echo "Please run the WooCommerce Setup Wizzard at:"
echo " http://wc-${WC_HOST}.dev/wp-admin/admin.php?page=wc-setup"
echo ""
echo "Press [Enter] when you have finished..."
read var_name
# Setup menu
sudo -u www-data /usr/bin/wp-cli menu create "Main Menu"
sudo -u www-data /usr/bin/wp-cli menu location assign main-menu primary
for page in shop cart checkout my-account; do
id=$(wp-cli post list --post_type=page --name="$page" --field=ID --allow-root)
sudo -u www-data /usr/bin/wp-cli menu item add-post main-menu $id
done
# Setup WooCommerce Products
sudo -u www-data /usr/bin/wp-cli wc product create --title="Test Product" --sku="test-sku" --regular_price=15 --status="publish"
/var/www/html/wp-cli plugin install woocommerce --activate --allow-root --version=$2
/var/www/html/wp-cli plugin activate woocommerce-seqr --allow-root
#!/bin/bash
curl -O -s https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /var/www/html/wp-cli
if [ -n "$1" ]; then
exec $1
elseif
exec /bin/true
fi
#!/bin/bash
if [ $# -lt 3 ]; then
echo "Usage: wc-docker-create.sh NAME PORT SITE_NAME"
exit
fi
NAME=$1
PORT=$2
SITE=$3
SCRIPTDIR="$(dirname "$0")"
# docker run -p $PORT:80 -d --name wc-$NAME -v /home/reinhold/OpenTools/Software/WooCommerce/AdvancedOrdernumbers:/var/www/html/wp-content/plugins/woocommerce-advanced-ordernumbers -v /home/reinhold/OpenTools/Software/WooCommerce/ShippingByRules:/var/www/html/wp-content/plugins/woocommerce-shipping-by-rules --link mysql-dev:mysql -e WORDPRESS_DB_NAME=wc_$NAME agrothberg/docker-woocommerce:latest
docker run -p $PORT:80 -d --name wc-$NAME -v /home/reinhold/OpenTools/Software/WooCommerce/AdvancedOrdernumbers:/var/www/html/wp-content/plugins/woocommerce-advanced-ordernumbers -v /home/reinhold/OpenTools/Software/WooCommerce/ShippingByRules:/var/www/html/wp-content/plugins/woocommerce-shipping-by-rules --link mysql-dev:mysql -e WORDPRESS_DB_NAME=wc_$NAME opentools/woocommerce:latest
sudo $SCRIPTDIR/add-docker-vhost.sh wc-$NAME $PORT
echo "Waiting for Docker to set up the database etc. Otherwise the wp-cli setup scripts cannot access the DB and will fail!"
sleep 15
docker exec -ti wc-$NAME /install-wc.sh "$NAME" "$SITE"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment