Commandes Shell

Mise à jour des thèmes par shell…

Download et upload du répertoire du thème WordPress, site installé sur OpenShift, par la commande scp. Les commandes doivent être lancées depuis l’image Docker suivante. Le répertoire de travail local est le répertoire ~/.openshift/. Sur la plateforme OpenShift Online 2, la commande git clone ne permet pas de ramener l’intégralité de l’arborescence du site. La commande scp est donc incontournable.

# Lancement de l'image Docker, suivie de la commande "rhc setup".
sudo docker run --rm --name rhc -ti -v ~/.openshift:/root/.openshift -v ~/.ssh:/private bigm/rhc bash
# Connexion SSH
ssh 558070075004466ad000018a@php-corbakatak.rhcloud.com
# Téléchargement du site
scp -r 558070075004466ad000018a@php-corbakatak.rhcloud.com:/var/lib/openshift/558070075004466ad000018a/app-root /media/renald/business-rules
# Upload des themes
scp -r /root/.openshift/business-rules/themes 558070075004466ad000018a@php-corbakatak.rhcloud.com:/var/lib/openshift/558070075004466ad000018a/app-root/data/themes

Sandbox WordPress #1 (sur le port 90)

Ceci lance un site WordPress de développement, mais ne permet pas de lancer de session de débogage avec XDebug. Le thème WordPress est partagé. Efficace, donc, pour prototyper un thème sans avoir à paramétrer un site en local.

git clone https://github.com/lvm/docker-wp-dev
cd docker-wp-dev
docker build -t wpdev .
sudo docker run -p 90:80 -v $HOME/dev/wpdev/themes:/usr/share/nginx/wordpress/wp-content/themes/ wpdev

Sandbox WordPress #2 (sur le port 90)

Cette solution expose la base de données en local, ce qui permet de garder le contenu du site après un redémarrage. Il faut utiliser la commande docker-compose, avec le fichier stack.yml suivant :

version: '2'

services:

  wordpress:
    image: wordpress
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_PASSWORD: example

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - ./db-wordpress:/var/lib/mysql

Lancement des images :

sudo docker-compose -f stack.yml up

Lister les images en cours d’exécution :

renald@venantvr:~$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
52d66497f8b2        mysql:5.7           "docker-entrypoint..."   9 minutes ago       Up 3 seconds        3306/tcp               renald_mysql_1
8aa24a38b8b2        wordpress           "docker-entrypoint..."   16 minutes ago      Up 2 seconds        0.0.0.0:8080->80/tcp   renald_wordpress_1

Ouvrir un shell dans le conteneur WordPress existant :

renald@venantvr:~$ sudo docker exec -i -t 8aa /bin/bash
root@8aa24a38b8b2:/var/www/html# ls
index.php	 wp-blog-header.php    wp-cron.php	  wp-mail.php
license.txt	 wp-comments-post.php  wp-includes	  wp-settings.php
readme.html	 wp-config-sample.php  wp-links-opml.php  wp-signup.php
wp-activate.php  wp-config.php	       wp-load.php	  wp-trackback.php
wp-admin	 wp-content	       wp-login.php	  xmlrpc.php

Le fichier stack.yml suivant permet de partager l’arborescence du site :

version: '2'

services:

  wordpress:
    image: wordpress
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_PASSWORD: example
    volumes:
      - ./php-wordpress:/var/www/html/wp-content/plugins

  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - ./db-wordpress:/var/lib/mysql
sudo chmod 777 php-wordpress

Les fichiers sont accessibles par l’intermédiaire de répertoire de travail local, ./php-wordpress… Par ailleurs, le port 80 du conteneur est exposé à travers le port 8080 de la machine locale, afin de ne pas collider avec une configuration existante sur l’hôte. Suppression de toutes les images quand rien ne va plus :

#!/bin/bash
# Delete all containers
docker rm $(docker ps -a -q)
# Delete all images
docker rmi $(docker images -q)

Exécution de PhpStorm depuis une image Docker

sudo docker run -it --rm
    -e DISPLAY=$DISPLAY
    -v /tmp/.X11-unix:/tmp/.X11-unix
    -v /var/www/preprod:/var/www/preprod
    -v ~/Projects:/workspace
    iainmckay/phpstorm:2017.1-php5

Add a Comment

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

2 + 7 =