English
DH3MFW
headerimage

Ich wurde von einem Freund gefragt, ob ich nicht ein Shopsystem in einem Container kenne. Da bin ich auf die Suche gegangen und habe eine Anleitung gefunden, wie das geht.

https://medium.com/@meirgotroot/running-oscommerce-in-docker-containers-a-step-by-step-guide-3a752d59a75b

Leider ist diese Anleitung nicht zu 100% genau. Musste mich ein bischen "durchbeissen", aber ein guter Weg !!

Zuerst braucht es eine laufende Docker Installation incl docker-compose. Um das Ganze zu konfigurieren, per Putty sich auf die Linux Maschine verbinden und sich in das Wurzelverzeichnis der Docker Container begeben.

Eine Kopie der Files aus dem Github Verzeichnis von dem User Meir Michanie ziehen.

> git clone https://github.com/meirm/osc_docker

Die notwendigen Files sind in dem Verzeichnis osc_docker zu finden.

Lade die letzte Version von OSCommerse herunter und plaziere das File mit dem Namen osc_install.zip und in das Verzeichnis.

!! Nun braucht es einige Anpassungen, die nicht auf der Homepage stehen !!

Folgendes soll in dem Dockerfile stehen:

Ich wurde von einem Freund gefragt, ob ich nicht ein Shopsystem in einem Container kenne. Da bin ich auf die Suche gegangen und habe eine Anleitung gefunden, wie das geht.

https://medium.com/@meirgotroot/running-oscommerce-in-docker-containers-a-step-by-step-guide-3a752d59a75b

Leider ist diese Anleitung nicht zu 100% genau. Musste mich ein bischen "durchbeissen", aber ein guter Weg !!

Zuerst braucht es eine laufende Docker Installation incl docker-compose. Um das Ganze zu konfigurieren, per Putty sich auf die Linux Maschine verbinden und sich in das Wurzelverzeichnis der Docker Container begeben.

Eine Kopie der Files aus dem Github Verzeichnis von dem User Meir Michanie ziehen.

> git clone https://github.com/meirm/osc_docker

Die notwendigen Files sind in dem Verzeichnis osc_docker zu finden.

Lade die letzte Version von OSCommerse herunter und plaziere das File mit dem Namen osc_install.zip und in das Verzeichnis.

!! Nun braucht es einige Anpassungen, die nicht auf der Homepage stehen !!

Folgendes soll in dem Dockerfile stehen:

FROM php:7.4-apache
RUN apt-get update && apt-get install -y \
    libpng-dev \
    libxml2-dev \
    libxslt1-dev \
    libzip-dev \
    libonig-dev \
    libcurl4-gnutls-dev \
    libicu-dev \
    && docker-php-ext-install -j$(nproc) gd intl mbstring mysqli soap xml xmlrpc xsl zip pdo fileinfo pdo_mysql \
    && a2enmod rewrite headers \
   && service apache2 restart
COPY ./osc_install.zip /var/www/html/
RUN apt-get install -y unzip \
    && unzip /var/www/html/osc_install.zip -d /var/www/html/ \
    && rm /var/www/html/osc_install.zip \
    && chown -R www-data:www-data /var/www/html/

Bei mir musste ich nichts ändern.

In meiner Docker Installation waren die Ports 80 und 8080 schon belegt. Darum habe ich die Ports auf 81 und 8081 in dem File docker-compose.yaml geändert.

version: '3.8'
  services:
    web:
      build: .
      ports:
        - "81:80"
      depends_on:
        - db
      # volumes:
      # - ./htdocs:/var/www/html
      environment:
        - APACHE_DOCUMENT_ROOT=/var/www/html
    db:
      image: mysql
      restart: always
      environment:
        MYSQL_ROOT_PASSWORD: rootpassword
        MYSQL_DATABASE: oscommerce
        MYSQL_USER: user
        MYSQL_PASSWORD: password
      ports:
        - "3306:3306"

    phpmyadmin:
      image: phpmyadmin/phpmyadmin
      restart: always
      ports:
        - '8081:80'
      environment:
        PMA_HOST: db
        PMA_PORT: 3306
        MYSQL_ROOT_PASSWORD: rootpassword
      depends_on:
        - db

      volumes:
        db_data:

Ausserdem gehört in dem File .dockerignore der Kommentar osc_install.zip mit einem # zu # osc_install.zip auskommentiert, sonst kommt es zu einer Fehlermeldung.

NUN kann der Container erzeugt werden mit dem Kommando:

> docker-compose up -d --build

Nicht wundern es wird nun Magic. Da tun sich jede Menge Dinge. Zuerst werden die Images der Container:

  • phpmyadmin/phpmyadmin
  • osc_docker_web
  • mysql

heruntergeladen, dann das Makefile ausgeführt und am Ende die 3 Container angestartet.

mit dem Kommando docker ps könnt ihr sehen, ob die Container sauber angestartet sind und auf welche Ports diese hören.

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
26298b341538 phpmyadmin/phpmyadmin "/docker-entrypoint.…" 35 minutes ago Up 35 minutes 0.0.0.0:8081->80/tcp, :::8081->80/tcp osc_docker_phpmyadmin_1
e90b0cc292bf osc_docker_web "docker-php-entrypoi…" 35 minutes ago Up 35 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp osc_docker_web_1
beccba7ac495 mysql "docker-entrypoint.s…" 35 minutes ago Up 35 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp osc_docker_db_1

Mit dem Aufruf http://<ip>:81/ kann jetzt das Setup von OSCommerce gestartet werden.

nach oben