| @@ -0,0 +1,72 @@ | |||||
| FROM php:8.1-apache | |||||
| ENV APACHE_DOCUMENT_ROOT /var/www/html | |||||
| ENV APACHE_SERVER_NAME localhost | |||||
| #ENV APACHE_SERVER_NAME 172.0.0.1 | |||||
| ENV PATH="$PATH" | |||||
| # Install php and extensions | |||||
| RUN apt-get update | |||||
| RUN apt-get install -y \ | |||||
| git zip \ | |||||
| libfreetype6-dev \ | |||||
| libjpeg62-turbo-dev \ | |||||
| libpng-dev \ | |||||
| libicu-dev \ | |||||
| libxml2-dev \ | |||||
| libxslt1-dev \ | |||||
| libzip-dev \ | |||||
| zip \ | |||||
| && docker-php-ext-install -j$(nproc) iconv \ | |||||
| && docker-php-ext-configure gd --with-jpeg=/usr/include/ --with-freetype=/usr/include/ \ | |||||
| && docker-php-ext-install -j$(nproc) gd \ | |||||
| && docker-php-ext-install -j$(nproc) intl \ | |||||
| && docker-php-ext-install -j$(nproc) pdo_mysql \ | |||||
| && docker-php-ext-install bcmath \ | |||||
| && docker-php-ext-install soap \ | |||||
| && docker-php-ext-install xsl \ | |||||
| && docker-php-ext-install zip \ | |||||
| && docker-php-ext-install sockets | |||||
| # Increase memory limit for php | |||||
| RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" | |||||
| RUN echo 'memory_limit = 2048M' >> /usr/local/etc/php/conf.d/docker-php-memlimit.ini; | |||||
| # Create ssl directory for apache and copy vhost.conf | |||||
| RUN mkdir /etc/apache2/sites-available/ssl | |||||
| COPY ./apache/vhost.conf /etc/apache2/sites-available/000-default.conf | |||||
| # Copy app code into container -> NOTE: "./" -> means dir of volume in docker-compose (./../src:/var/www/html) | |||||
| COPY ./ /var/www/html | |||||
| WORKDIR /var/www/html | |||||
| RUN chown -R www-data:www-data /var/www/html && a2enmod rewrite ssl | |||||
| # Install nano | |||||
| RUN apt install nano | |||||
| # Download an install composer | |||||
| RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer | |||||
| # Install xdebug | |||||
| RUN pecl install xdebug-3.1.5 \ | |||||
| && docker-php-ext-enable xdebug \ | |||||
| && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ | |||||
| && echo "xdebug.client_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ | |||||
| && echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ | |||||
| && echo 'xdebug.discover_client_host=1' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ | |||||
| && echo 'xdebug.log=/var/www/var/log/xdebug.log' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ | |||||
| && echo 'xdebug.log_level=0' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini | |||||
| # Expose port 80 | |||||
| #EXPOSE 80 | |||||
| # Optional: shell script to initialize | |||||
| #COPY /init.sh /init.sh | |||||
| #RUN chmod 755 /init.sh | |||||
| #RUN chmod +x /init.sh | |||||
| #ENTRYPOINT ["/init.sh"] | |||||
| # Set apache foreground explicitely (maybe not necessary in all cases) | |||||
| CMD ["apache2-foreground"] | |||||
| @@ -0,0 +1,19 @@ | |||||
| -----BEGIN CERTIFICATE----- | |||||
| MIIDDzCCAfegAwIBAgIUacRT0wfDwFpu2HEAkbuTxeF7UMswDQYJKoZIhvcNAQEL | |||||
| BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIzMDkyOTA5MjM0M1oXDTIzMTAy | |||||
| OTA5MjM0M1owFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF | |||||
| AAOCAQ8AMIIBCgKCAQEAwh2eWfKmijSIrDRZAJVcmg4oZgWUmJf+8DEgP+5KBB2b | |||||
| r88Vaw9+eNYo2NWMCEFswCFbyWfMcnDfIpybV25OQTJQjiGdCsXkRuEnIQbOMasz | |||||
| 0mD+oWBzEVaB4SpLRAFpBKl8+XHgsAT6J3NTk26RhaZY6i+WqvAkY0R1fbFwJ31z | |||||
| 9OYkNE8QeRoC+MQMWdiXuXflN+5NUUs8WR7zvr+CjSmHEUKpDnEv4MWUWkfiL2Zy | |||||
| xEPagl0IiHrXuXUWqzaq+mr+ATlnNouU+dcO44NdiBmzh2GVK442dW0JjgdQjUgs | |||||
| Y0XVQ2qh9u7x6TGU27jCgouM7gi1suOAxtKjQbEmbwIDAQABo1kwVzAUBgNVHREE | |||||
| DTALgglsb2NhbGhvc3QwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMB | |||||
| MB0GA1UdDgQWBBTepkPYYWeaCWfqRoVe2yHz8HHX+DANBgkqhkiG9w0BAQsFAAOC | |||||
| AQEAW6A/oqkgb32Mx7BaIWz491SEC6QWeQgQYres8WpiwP51aks10W41Ofli/JAS | |||||
| N69p6PmkpXrfrJPq5+rTqCquNtqVAaS6ub66uvGviavAvmYN/Ach3EniQePeVrMN | |||||
| F+QQkO4HCh930TIRI+966Vf1PmPw21uNR784bGtYVCZkL5RZftjNXX+VkK3UUbUd | |||||
| D70aAWrO+VE5WhVOZ8nptP1EkW0FskzXlRWgiwYjClircnIQyFqBrwrCfIkdkddi | |||||
| g+Yya0+8BPxluvpnRwXZBy4scQsgeYK36GRLj/hwjpJxuqzAKy3EvCx7l26orTXP | |||||
| vGRifB/WxTmhZKW3LXW3RjJ43Q== | |||||
| -----END CERTIFICATE----- | |||||
| @@ -0,0 +1,28 @@ | |||||
| -----BEGIN PRIVATE KEY----- | |||||
| MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDCHZ5Z8qaKNIis | |||||
| NFkAlVyaDihmBZSYl/7wMSA/7koEHZuvzxVrD3541ijY1YwIQWzAIVvJZ8xycN8i | |||||
| nJtXbk5BMlCOIZ0KxeRG4SchBs4xqzPSYP6hYHMRVoHhKktEAWkEqXz5ceCwBPon | |||||
| c1OTbpGFpljqL5aq8CRjRHV9sXAnfXP05iQ0TxB5GgL4xAxZ2Je5d+U37k1RSzxZ | |||||
| HvO+v4KNKYcRQqkOcS/gxZRaR+IvZnLEQ9qCXQiIete5dRarNqr6av4BOWc2i5T5 | |||||
| 1w7jg12IGbOHYZUrjjZ1bQmOB1CNSCxjRdVDaqH27vHpMZTbuMKCi4zuCLWy44DG | |||||
| 0qNBsSZvAgMBAAECggEAL62YtF0ePLn0i997sOH+0bQChjR+sBA9RP+7/RfpRCOF | |||||
| luQVTauLk+B+PewNrgVr0bEf21NMaxuAIv82RH5KaEcUdCSbbwb2L9ajhsAmKxry | |||||
| 6ox6XmbTPIHz+rspq3VxNvzuPlKTLoi6bLAt6ftxcNNP6Y1ww2GifmNVPF81vezr | |||||
| 5UegZM4IhibpMjat4KOWGQRq6tOyFbb0HxFaIwEOPFXiJOhm62mCaNXLW/LsyM99 | |||||
| 285t8G6tiEBkkI1TmSwaTW74sVqO6/7ixtNxbpgT3I0d4wTplbD6h1nmr7Jx3vfo | |||||
| GvfmnyVQ8F6iNVn9fmA8Fkd3NbHEbDoRXYfM/j4BwQKBgQDiuUcpFCe73ATWWRNT | |||||
| pKeFO5fDRk/8e3DB8pP7fjGyNMR/AWZlHHew3jddcq5USHCsIuSO6C5ziLvHa+Lu | |||||
| DoVTQ5Lx/u8wBDB+yuwt6kNzoxaL05H7lIllUVGBheF4HDXyOHhia6OWZn6UXlu2 | |||||
| gmVBDxpsjcVjx/aoCJIvTXLAjwKBgQDbLm27lXvF+K4xbLin7Kfwl3C2jxYB7mBL | |||||
| In/x/xNqgifTrcpMDxpnStFzpQHKZ1RT9fV2BPLlfPjsgUJiRUJ0jgfuO3WUjs5w | |||||
| YIh+wKQE+/o56OqMA7oM+yIRMNO9/MmocdPtic2gvq1tDG46M8Qox8EAnTChpHbp | |||||
| gw5VGbZsIQKBgAXFOW5uOOSrIORjt/40/p6BecdajsaaTbBiACoyeAlVFns1Ceog | |||||
| 41r5DOev94floBiBete4SRZfsIfO0yPD8ti/q4nFN0k9kg5oE8LHZ5gV2okMhXal | |||||
| vSl6/FwTkD2CWk0j6sx2eN9nFGmqTSNEBle1jrKcmR2FBV4Zeb8CdZ05AoGAFJkd | |||||
| aOaYdjdzr2NnSyi7c6nXxuBVkiLj28vHOGffXEAVHBiWDWXR9mkanAKi03G4hBd2 | |||||
| VPwME7MV9awEIBYgM7HxXtsppqdxETCRQ1A5WdqQXobcHAJxpqynO/RZwd4S2Yix | |||||
| AP7VW0jwJXJonYGl6qszISqkmlxJbJKLc0XyVeECgYBVLs9eAGLVUQnMfm3c6ykA | |||||
| 61Olqkz5gMSRClpMDffrIeH6P261KsEsopV/8rdWyrvTEzba/g2vNsy+ybgxx8bD | |||||
| fOGMch/Vz3fYIuTKvB9d604rCjV3Z5qeiqwG2TuI8uuFHAHo3EI90zt7BRF9y+R+ | |||||
| 4hPycH/ZTj4TND2bZDxbOA== | |||||
| -----END PRIVATE KEY----- | |||||
| @@ -0,0 +1,40 @@ | |||||
| LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so | |||||
| <VirtualHost *:80> | |||||
| ServerName localhost | |||||
| DocumentRoot /app | |||||
| <Directory "/app"> | |||||
| Options Indexes FollowSymLinks Includes execCGI | |||||
| AllowOverride All | |||||
| Require all granted | |||||
| allow from all | |||||
| </Directory> | |||||
| ErrorLog ${APACHE_LOG_DIR}/error.log | |||||
| CustomLog ${APACHE_LOG_DIR}/access.log combined | |||||
| </VirtualHost> | |||||
| <VirtualHost _default_:443> | |||||
| DocumentRoot "/app" | |||||
| ServerName localhost:443 | |||||
| ErrorLog ${APACHE_LOG_DIR}/error.log | |||||
| CustomLog ${APACHE_LOG_DIR}/access.log combined | |||||
| SSLEngine on | |||||
| SSLCertificateFile "/etc/apache2/sites-available/ssl/localhost.crt" | |||||
| SSLCertificateKeyFile "/etc/apache2/sites-available/ssl/localhost.key" | |||||
| <FilesMatch "\.(cgi|shtml|phtml|php)$"> | |||||
| SSLOptions +StdEnvVars | |||||
| </FilesMatch> | |||||
| <Directory "/app"> | |||||
| Options Indexes FollowSymLinks Includes execCGI | |||||
| AllowOverride All | |||||
| Require all granted | |||||
| </Directory> | |||||
| </VirtualHost> | |||||
| @@ -0,0 +1,52 @@ | |||||
| version: '3.7' | |||||
| name: spt-magento | |||||
| services: | |||||
| mariadb: | |||||
| image: mariadb:10.4 | |||||
| container_name: mariadb-10.4 | |||||
| ports: | |||||
| - "3401:3306" | |||||
| environment: | |||||
| # think about .env file here | |||||
| MYSQL_ROOT_PASSWORD: root | |||||
| volumes: | |||||
| - ./../.mariadb:/var/lib/mysql | |||||
| restart: always | |||||
| networks: | |||||
| - default | |||||
| php-apache: | |||||
| build: | |||||
| context: . | |||||
| dockerfile: Dockerfile | |||||
| image: 'php81_apache' | |||||
| container_name: php-8.1-apache | |||||
| environment: | |||||
| - "APACHE_LOG_DIR:/src" | |||||
| ports: | |||||
| - '8101:80' | |||||
| volumes: | |||||
| - ./apache:/etc/apache2/sites-available/ssl | |||||
| - ./../src:/var/www/html | |||||
| networks: | |||||
| - default | |||||
| depends_on: | |||||
| - mariadb | |||||
| - elasticsearch | |||||
| elasticsearch: | |||||
| image: docker.io/bitnami/elasticsearch:7 | |||||
| container_name: elasticsearch7 | |||||
| volumes: | |||||
| - ./../.elasticsearch:/bitnami/elasticsearch/data' | |||||
| phpmyadmin: | |||||
| image: phpmyadmin | |||||
| container_name: phpmyadmin | |||||
| restart: always | |||||
| ports: | |||||
| - "8102:80" | |||||
| environment: | |||||
| - PMA_ARBITRARY=1 | |||||
| networks: | |||||
| - default | |||||
| networks: | |||||
| default: | |||||
| @@ -0,0 +1,13 @@ | |||||
| #!/bin/sh | |||||
| echo "create log files" | |||||
| su www-data -s /bin/bash | |||||
| mkdir /var/www/html/temp | |||||
| mkdir /var/www/html/logs | |||||
| cd /var/www/html/logs | |||||
| touch tbserver-log.txt | |||||
| touch tbserver-cron-log.txt | |||||
| echo "$@" | |||||
| docker-php-entrypoint "$@" | |||||
| @@ -0,0 +1,3 @@ | |||||
| .idea | |||||
| .mariadb | |||||
| .elasticsearch | |||||
| @@ -0,0 +1,78 @@ | |||||
| # magento-test | |||||
| #Installation: | |||||
| # Some important information | |||||
| # Some helpful docker commands: | |||||
| # Build all containers | |||||
| - `docker-compose up -d` | |||||
| # Stop all containers | |||||
| - `docker-compose down` | |||||
| # Remove image | |||||
| - `docker image rm php81_apache` | |||||
| # Stop containers, remove image and recreation of container | |||||
| - `docker-compose down && docker image rm php81_apache && docker-compose up -d` | |||||
| # Get into container | |||||
| - `docker exec -it php-8.1-apache /bin/bash` | |||||
| - `docker build -t magento-php .` | |||||
| - `docker image rm magento_php` | |||||
| - `docker ps` | |||||
| - `docker ps --all` | |||||
| - `docker container stop $(docker container ls -aq)` | |||||
| - `docker container rm $(docker container ls -aq)` | |||||
| - `docker rmi $(docker images -q)` | |||||
| - `docker stop spt_tbuddy && docker rm spt_tbuddy && docker rmi spt_tb && docker-compose up -d` | |||||
| - `docker stop magento-test && docker rm magento-test && docker rmi spt_tb && docker-compose up -d` | |||||
| # Some helpful other commands: | |||||
| - Restart Apache within the container | |||||
| - Go into docker container `docker exec -it magento-php /bin/bash` | |||||
| - Apache restart `sudo /etc/init.d/apache2 reload` | |||||
| # Clean restart of Docker instance | |||||
| 1. Stop the container(s) using the following command: `docker-compose down` | |||||
| 2. Delete all containers using the following command: `docker rm -f $(docker ps -a -q)` | |||||
| 3. Delete all volumes using the following command: `docker volume rm $(docker volume ls -q)` | |||||
| 4. Restart the containers using the following command: `docker-compose up -d` | |||||
| # INSTALL MAGENTO via composer | |||||
| - docker Container starten und in den Container wechseln | |||||
| - composer install | |||||
| - "bin/magento install" Befehl: | |||||
| php bin/magento setup:install --base-url="http://127.0.0.1" \ | |||||
| --db-host="magento-mariadb" \ | |||||
| --db-name="magento" \ | |||||
| --db-user="root" \ | |||||
| --db-password="root" \ | |||||
| --admin-firstname="Admin" \ | |||||
| --admin-lastname="Admin" \ | |||||
| --admin-email="re@spawntree.de" \ | |||||
| --admin-user="admin" \ | |||||
| --admin-password="magento2test" \ | |||||
| --use-rewrites="1" \ | |||||
| --backend-frontname="admin" \ | |||||
| --db-prefix=mage_ \ | |||||
| --search-engine=elasticsearch7 \ | |||||
| --elasticsearch-host=elasticsearch \ | |||||
| --elasticsearch-port=9200 | |||||
| # create admin account | |||||
| bin/magento admin:user:create --admin-user=admin --admin-password=admin2spt --admin-email=re@spawntree.de --admin-firstname=Admin --admin-lastname=Administrator | |||||
| # mkdir for volumes | |||||
| mkdir -m 775 elasticsearch_data magento_data mariadb_data | |||||
| mkdir .elasticsearch .mariadb | |||||
| # standard permission magento - do we use it? | |||||
| find . -type d -exec chmod 0711 {} + | |||||
| find . -type f -exec chmod 0644 {} + | |||||
| find . -type f -name “*.php” -exec chmod 600 {} + | |||||
| @@ -0,0 +1,2 @@ | |||||
| <?php | |||||
| echo 'hello world'; | |||||