docker Windows Server Container und Docker II
Vorbereitung
Als nächstes bereiten wir die Build-Umgebung vor. Wir laden Apache, PHP, passende vc_redist (17 und 13), Microsoft ODBC Treiber 13 und 17, SQLSRV5.3, und einen Oracle Instantclient herunter.
Ich überspringe an dieser Stelle einige Schritte und zeige nur die endgültige Version. Ihr verpasst aber nichts Dramatisches, der Buildprozess wurde nur einige Male verändert und die Verzeichnisstruktur entsprechend angepasst. Der Sinn oder Unsinn wird dann vermutlich klar, wenn wir uns die Dockerfiles ansehen.
Also legen wir erstmal folgende Struktur an:
Build
├───install
├───instantclient
├───webapp
│ ├───Apache24
│ └───docroot
└───php
└───php
In install legen wir die VC Redist Installer und die ODBC Treiber MSI-Pakete ab. Ich habe die umbenannt um sie leichter unterscheiden zu können.
Den Instantclient kann man einfach entpacken und den Inhalt des instantclient_18_3-Verzeichnisses in instantclient ablegen.
In php/php wird das heruntergeladene PHP entpackt und in webapp/Apache24 der Webserver. Die httpd.conf nach Belieben anpassen, darauf achten das das DocumentRoot webapp/docroot sein soll und noch eine webapp/Apache/conf/extra/php.conf includieren. Die gibt es zwar nicht, das erledigt dann der Buildprozess.
Die php.conf kommt nach /php und sieht etwa so aus:
LoadModule php7_module "C:\webapp\php\php7apache2_4.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:\webapp\php"
DirectoryIndex index.php
Nun noch PHP konfigurieren und dann sind die Vorbereitungen abgeschlossen.
Eigentlich ... also quasi schon ...
Aus irgendeinem Grund werden die Registry-Einträge für die ODBC-Treiber nicht geschrieben. Weder beim Build noch im laufenden Container. Also erstellen wir noch eine odbc.reg und legen die mit nach /install. Die Datei kann man erzeugen, indem man den Schlüssel exportiert. Dazu kann man kurzzeitig die ODBC Treiber auf dem Host installieren.
- david.r und KeeperOfCoffee reagierten darauf
- 2
0 Kommentare
Empfohlene Kommentare
Keine Kommentare vorhanden