Automated drupal deploys with drush make and Wercker

Posted: 11:18am 1st Nov 2016

I maintain a bunch of Drupal sites for friends and family, but due to the nature of these, they often have sporadic development. An issue I've been facing recently is that of security/module maintenance. This post describes how I automated and simplififed the process of updating many drupal sites using docker and automated deployment using the Wercker service.

How I use docker with drupal

Posted: 8:03pm 20th Aug 2015

I've already espounded the advantages of docker in other posts, but I'd thought it might be useful to share (and document for my own benefit), how I've been running my own personal drupal projects using docker. There are already some great pre-built drupal images out there on the docker registry, but partly because none quite fitted my workflow, and partly to better understand how it works, I setup my own. This post details the docker-compose config I use for my drupal projects.

Why it helps to separate service containers in docker

Posted: 6:31pm 3rd Jun 2015

Setting up an effective development environment using docker requires a change of thinking when coming from regular VM tools such as Vagrant. This post discusses some of the concepts around separating services to separate containers, and why you would want to do this.

Node packages in docker and the node-onbuild container

Posted: 5:47pm 13th May 2015

I've recently been experimenting with ways to run node projects inside of docker, resulting in a new "onbuild" container I'm now using for node projects on Github.

A built image of this container is also available on the docker hub registry at grahamgilchrist\node-onbuild

Faster volume mounts with Docker development

Posted: 7:09pm 12th May 2015

Docker is a great technology, but in a previous post I mentioned the issues boot2docker has on Mac OS X, specifically with volume mounts.

Since a significant proportional of our development team (including myself) develop on Mac OS X, these issues affect us on a daily basis, so I did some digging to find out the causes of this slowdown and what (if anything) can be done to fix it.

To summarise the problem:

Why docker is great

Posted: 12:15am 8th May 2015

A technology I've been evaluating and testing lately is Docker. It uses Linux container (LXC) technology to provide essentially a native speed linux virtual machine which can be configured via script files (Dockerfiles) and provides a public registry of built-images. The concept is similar to using a virtual machine configured via text files such as vagrant or something similar, except the big bonus is speed, since the native LXC container technology allows direct hardware access on Linux.

The importance of unicode support in nodeJS for dev team environments (A tale of Woe)

Posted: 12:39pm 31st Mar 2015

We've been making use of the angular-gettext module to provide translation functionality on angular sites recently. It works quite nicely, giving a simple <translate> directive which can be used in templates to indicate strings for translation.

How do you solve a problem like grunt packaging?

Posted: 7:27pm 4th Jul 2014
  • Big projects using grunt can end up with long and hard to read gruntfiles
  • When working on multiple similar projects, grunt task config and alias tasks are often repeated
  • How do we package these files to make them self-contained with dependencies and versioning?
  • There's a bunch of contrib options with pros/cons, but in the end I went with a basic self-written grunt plugin using grunt.config.merge()

IE8 CSS grouped selectors bug

Posted: 3:33pm 29th Jun 2011

Here's an annoying bug I ran into today, which curiously seems only to apply to IE8 and not IE7.

If you declare a selector block in a stylesheet with a pseudo-class that IE8 does not recognise, mixed with one that it does, IE8 won't recognise either of them. Here's an example

Running views during hook_cron which require admin privileges

Posted: 10:24am 27th Jun 2011

When needing to set up scheduled task in custom drupal modules, it is common to handle these with a hook_cron function. When this hook is triggered, it usually runs as the drupal anonymous user, but in some situations you want to run code during cron which requires certain higher level privileges.