Back in 2017 at the Wikimedia Hackathon, I played around with Docker and docker-compose in relation to MediaWiki and testing with multiple setups at once while developing, meaning multiple PHP versions, web servers and databases. My original slides can still be found here.
Since then mediawiki-docker-dev evolved into less of a testing system and more of a development environment, allowing the use of a master replica DB setup, easily swappable PHP versions, debugging and more. The project on GitHub currently has 40 stars, 38 forks and has seen 17 people contributing back.
Over the past couple of years, developer productivity and development environments have been a big discussion area. The Wikimedia technical conference in 2019 had the main topic of Developer Productivity. There have also been a few efforts in a few directions trying to figure out what is best for the majority of people. These include local-charts (Kubernetes based environment) and MediaWiki-Docker (simple docker-compose based environment).
I just saw a tweet saying that Windows terminal is now generally available, so I had to give it a try.
After downloading from the store and booting up I realized that only powershell, cmd and wsl are listed by default (and also Azure which I don’t really care about).
Clicking around the UI a little there is a settings menu item that opens a JSON configuration file in notepad. This configuration file defines the behaviours of the terminal including the profiles that can be loaded.
After a bit of searching and documentation reading I came up with this profile which I now use for my git bash installation (I hope it can help you too).
I have been using Google Cloud Build for a budget project for roughly a year now. Cloud Build stores built images in a storage bucket which you are of course billed for. Within the first weeks of using it I realized that I needed some automated way to cleanup unused and old images that were built there.
At the time I had a quick search around on the web for something already implemented that I could copy, but I came up blank, and decided putting my problem off would be the best solution. I filed issue number 6 for my project and left it for future me.
Now it’s time to finally close that issue, and I hope others might also find the small bash script useful.
I recently encountered this error while trying to run one of my docker setups.
ERROR: for mediawiki-docker-dev_db-slave_1 Cannot start service db-slave: b'OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"/tmp/mwdd/entrypoint.sh\": stat /tmp/mwdd/entrypoint.sh: no such file or directory": unknown'
I have encountered errors like this before and it has always ended up being related to docker and sharing my drives to the linux VM that actually runs my containers.
Checking the shared drives menu of the docker UI everything seemed to be fine.
However when removing the drive share and re sharing the drive I got an error message saying that there was a “Firewall detected” and that “A firewall is blocking file Sharing between Windows and the containers. See documentation for more info”.
The docs seem to suggest that my firewall rule had vanished somehow. I spent a few minutes digging around and tinkering with firewall rules before determining the rule itself was not the issue. The next suggestion was to “reinstall the File and Print sharing service on the Hyper-V virtual network card “
Opening PowerShell as administrator and running the commands suggested on stackoverflow (switching the DockerNAT network) seemed to do the trick.
Set-NetConnectionProfile -interfacealias "vEthernet (DockerNAT)" -NetworkCategory Private
I still have no idea why this happened. Did I accidently set the DockerNAT network to be public? Could the Docker UI really not check the firewall rule itself and propose the fix?
This is an internal WMDE presentation made to introduce people to the land of Wikimedia CI, MediaWiki deployment and config changes.
This briefly covers:
- Jenkins & Zuul
- CI Config
- Beta Cluster
- The MediaWiki train
- The Docker & Kubernetes future?
This is an internal WMDE presentation made to introduce people to Event Logging.
This is an internal WMDE presentation made to introduce people to Docker and the Wikibase docker images already introduced in this post.
This presentation was used as part of a lightning talk at Wikicite 2017 promoting the plan by the WMDE community tech team to implement an extends attribute for the ref tag in wikitext.
The aim of the presentation was to prompt questions and discussion.
This relates to phabricator ticket https://phabricator.wikimedia.org/T151301
This presentation was used during the 2017 Wikimedia Hackathon showcase presentations.
The code shown can be found @ https://github.com/addshore/mediawiki-docker-dev
Below you will find an internal WMDE presentation covering the general area of WMDE Metric & Data Gatherings from 2016.
This presentation follows on from the initial introduction to engineering analytics activities.
The presentation skims through:
- WMDE Grafana dashboards
- The Wikimedia Analytics landscape
- Grafana & graphite
- Hadoop, Kafka, Hive & Oozie
- EventLogging, Mysql replicas & MediaWiki logs
- Out Analytics scripts
- How to get access