Vagrantfile für meine Entwicklungsumgebung

In meiner aktuellen Entwicklungsumgebung nutze ich Vagrant in Kombination mit VirtualBox, Docker und DDEV, um meine Projekte sauber und portabel zu isolieren. Die Konfiguration ist speziell auf Webentwicklung ausgelegt und umfasst die gängigsten Dienste und Ports, die ich benötige.

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "../images/vagrant-dev.box"
  config.vm.box_check_update = false

  config.vm.network "forwarded_port", guest: 80, host: 80, host_ip: "127.0.0.1", id: "http"
  config.vm.network "forwarded_port", guest: 443, host: 443, host_ip: "127.0.0.1", id: "https"
  config.vm.network "forwarded_port", guest: 3306, host: 3306, host_ip: "127.0.0.1", id: "mysql"
  config.vm.network "forwarded_port", guest: 9000, host: 9000, host_ip: "127.0.0.1", id: "php-fpm"
  config.vm.network "forwarded_port", guest: 8025, host: 8025, host_ip: "127.0.0.1", id: "mail"
  config.vm.network "forwarded_port", guest: 8026, host: 8026, host_ip: "127.0.0.1", id: "mail-secure"
  config.vm.network "forwarded_port", guest: 10999, host: 10999, host_ip: "127.0.0.1", id: "debug"
  config.vm.network "forwarded_port", guest: 22, host: 2222, host_ip: "127.0.0.1", id: "ssh"

  config.vm.synced_folder ".", "/vagrant", disabled: true
  
  config.vm.provider "virtualbox" do |vb|
    vb.cpus = 2
    vb.memory = "2048"
    vb.customize ["modifyvm", :id, "--ioapic", "on"] # Verbesserte IO-Leistung
    vb.name = "developer-build"
  end
  
end

Details:

Port-Weiterleitungen:

Um meine Entwicklungsdienste bequem von meinem Host-System zu erreichen, leite ich wichtige Ports weiter:

  • HTTP (80), HTTPS (443): Für Webserver wie Apache oder Nginx.
  • MySQL (3306): Zugriff auf die Datenbank.
  • PHP-FPM (9000): Für PHP-Dienste.
  • Mail-Testing (8025 & 8026): Testen von Mails ohne echte Zustellung.
  • SSH (2222): Zugriff auf die VM per Terminal.
  • Debugging (10999): Platz für Debugging-Dienste oder Tools.

Ressourcenmanagement:

Die VM ist mit 2 CPU-Kernen und 2048 MB RAM ausgestattet. Durch ioapic wird die I/O-Leistung optimiert.

ioapic? keine Ahnung, kam von ChatGPT

Deaktivierter Sync-Folder:

Ich verzichte bewusst auf den synchronisierten Standardordner (/vagrant), davon abgesehen hab ich keine guest additions für VirtualBox installiert

Kompakte Box:

Als Basis dient eine vorgefertigte Box (vagrant-dev.box), die ich selbst vorbereite und versioniere. Dadurch bleibt das Setup reproduzierbar und flexibel.

Dieses Vagrantfile bietet mir eine stabile Basis für Webentwicklungsprojekte. Egal, ob ich an LAMP-Stacks, PHP-Anwendungen oder Datenbanktests arbeite – mit wenigen Anpassungen kann ich die Umgebung schnell erweitern oder anpassen.

Falls ihr auch mit Vagrant arbeitet: Welche Features oder Tricks nutzt ihr in euren Vagrantfiles? Schreibt’s mir gerne in die Kommentare! 😊

*als ob, die Kommentarfunktion ist deaktiviert
Plugin Empfehlung: https://wpdeveloper.com/plugins/disable-comments/