| @@ -1,27 +1,55 @@ | |||||
| FROM php:8.1-apache | FROM php:8.1-apache | ||||
| ENV APACHE_DOCUMENT_ROOT /var/www/html/public | |||||
| ENV APACHE_DOCUMENT_ROOT /var/www/html | |||||
| ENV APACHE_SERVER_NAME localhost | ENV APACHE_SERVER_NAME localhost | ||||
| #ENV APACHE_SERVER_NAME 172.0.0.1 | |||||
| ENV PATH="$PATH" | ENV PATH="$PATH" | ||||
| WORKDIR /var/www/html | |||||
| RUN apt-get update | |||||
| # Install php and extensions | |||||
| RUN apt-get update | |||||
| RUN apt-get install -y \ | RUN apt-get install -y \ | ||||
| git zip \ | |||||
| libfreetype6-dev \ | libfreetype6-dev \ | ||||
| libjpeg62-turbo-dev \ | libjpeg62-turbo-dev \ | ||||
| libpng-dev \ | libpng-dev \ | ||||
| libicu-dev \ | libicu-dev \ | ||||
| libxml2-dev \ | |||||
| libxslt1-dev \ | |||||
| libzip-dev \ | |||||
| zip \ | |||||
| && docker-php-ext-install -j$(nproc) iconv \ | && docker-php-ext-install -j$(nproc) iconv \ | ||||
| && docker-php-ext-configure gd --with-jpeg=/usr/include/ --with-freetype=/usr/include/ \ | && 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) gd \ | ||||
| && docker-php-ext-install -j$(nproc) intl \ | && docker-php-ext-install -j$(nproc) intl \ | ||||
| && docker-php-ext-install -j$(nproc) pdo_mysql | |||||
| && 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; | |||||
| RUN apt-get install -y git zip | |||||
| # 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 | 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 \ | RUN pecl install xdebug-3.1.5 \ | ||||
| && docker-php-ext-enable xdebug \ | && docker-php-ext-enable xdebug \ | ||||
| && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ | && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ | ||||
| @@ -31,23 +59,14 @@ RUN pecl install xdebug-3.1.5 \ | |||||
| && echo 'xdebug.log=/var/www/var/log/xdebug.log' >> /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 | && echo 'xdebug.log_level=0' >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini | ||||
| RUN a2enmod rewrite && a2enmod headers | |||||
| RUN a2ensite 000-default | |||||
| COPY ./ /var/www/html | |||||
| RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf | |||||
| RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf | |||||
| RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini" | |||||
| RUN chown -R www-data:www-data /var/www/html/ | |||||
| # Expose port 80 | |||||
| #EXPOSE 80 | |||||
| COPY /init.sh /init.sh | |||||
| RUN chmod 755 /init.sh | |||||
| RUN chmod +x /init.sh | |||||
| 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"] | |||||
| ENTRYPOINT ["/init.sh"] | |||||
| # Set apache foreground explicitely (maybe not necessary in all cases) | |||||
| CMD ["apache2-foreground"] | 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,41 @@ | |||||
| LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so | |||||
| LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so | |||||
| <VirtualHost *:80> | |||||
| ServerName localhost | |||||
| DocumentRoot /var/www/html | |||||
| <Directory "/var/www/html"> | |||||
| 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 "/var/www/html" | |||||
| 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 "/var/www/html"> | |||||
| Options Indexes FollowSymLinks Includes execCGI | |||||
| AllowOverride All | |||||
| Require all granted | |||||
| </Directory> | |||||
| </VirtualHost> | |||||
| @@ -1,34 +1,47 @@ | |||||
| version: '3.7' | version: '3.7' | ||||
| name: spt-magento | |||||
| services: | services: | ||||
| database: | |||||
| image: mariadb | |||||
| container_name: skeleton-mariadb | |||||
| mariadb: | |||||
| image: mariadb:10.4 | |||||
| container_name: mariadb-10.4 | |||||
| ports: | ports: | ||||
| - "3401:3306" | - "3401:3306" | ||||
| environment: | environment: | ||||
| # think about .env file here | # think about .env file here | ||||
| MYSQL_ROOT_PASSWORD: root | MYSQL_ROOT_PASSWORD: root | ||||
| volumes: | volumes: | ||||
| - ./../.db:/var/lib/mysql | |||||
| - ./../.mariadb:/var/lib/mysql | |||||
| restart: always | restart: always | ||||
| networks: | networks: | ||||
| - default | - default | ||||
| php: | |||||
| php-apache: | |||||
| build: | build: | ||||
| context: ./ | |||||
| context: . | |||||
| dockerfile: Dockerfile | dockerfile: Dockerfile | ||||
| image: 'skeleton_php' | |||||
| container_name: skeleton-php | |||||
| image: 'php81_apache' | |||||
| container_name: php-8.1-apache | |||||
| environment: | |||||
| - "APACHE_LOG_DIR:/src" | |||||
| ports: | ports: | ||||
| - '8101:80' | |||||
| - '80:80' | |||||
| - '443:443' | |||||
| volumes: | volumes: | ||||
| - ./../:/var/www/html | |||||
| - ./apache:/etc/apache2/sites-available/ssl | |||||
| - ./../src:/var/www/html | |||||
| networks: | networks: | ||||
| - default | - default | ||||
| depends_on: | |||||
| - mariadb | |||||
| - elasticsearch | |||||
| elasticsearch: | |||||
| image: docker.io/bitnami/elasticsearch:7 | |||||
| container_name: elasticsearch7 | |||||
| volumes: | |||||
| - ./../.elasticsearch:/bitnami/elasticsearch/data' | |||||
| phpmyadmin: | phpmyadmin: | ||||
| image: phpmyadmin | image: phpmyadmin | ||||
| container_name: skeleton-phpmyadmin | |||||
| container_name: phpmyadmin | |||||
| restart: always | restart: always | ||||
| ports: | ports: | ||||
| - "8102:80" | - "8102:80" | ||||
| @@ -0,0 +1,3 @@ | |||||
| .idea | |||||
| .mariadb | |||||
| .elasticsearch | |||||
| @@ -1,29 +1,78 @@ | |||||
| # contao-docker-test | |||||
| # magento-test | |||||
| #Installation: | #Installation: | ||||
| # Some important information | # Some important information | ||||
| # Some helpful docker commands: | # Some helpful docker commands: | ||||
| # Build all containers | |||||
| - `docker-compose up -d` | - `docker-compose up -d` | ||||
| # Stop all containers | |||||
| - `docker-compose down` | - `docker-compose down` | ||||
| - `docker exec -it tb-con-tbuddy /bin/bash` | |||||
| - `docker build -t tb-con-tbuddy .` | |||||
| - `docker image rm tb_spt_image` | |||||
| # 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` | ||||
| - `docker ps --all` | - `docker ps --all` | ||||
| - `docker container stop $(docker container ls -aq)` | - `docker container stop $(docker container ls -aq)` | ||||
| - `docker container rm $(docker container ls -aq)` | - `docker container rm $(docker container ls -aq)` | ||||
| - `docker rmi $(docker images -q)` | - `docker rmi $(docker images -q)` | ||||
| - `docker stop spt_tbuddy && docker rm spt_tbuddy && docker rmi spt_tb && docker-compose up -d` | - `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: | # Some helpful other commands: | ||||
| - Restart Apache within the container | - Restart Apache within the container | ||||
| - Go into docker container `docker exec -it spt_tbuddy /bin/bash` | |||||
| - Go into docker container `docker exec -it magento-php /bin/bash` | |||||
| - Apache restart `sudo /etc/init.d/apache2 reload` | - Apache restart `sudo /etc/init.d/apache2 reload` | ||||
| # Clean restart of Docker instance | # Clean restart of Docker instance | ||||
| 1. Stop the container(s) using the following command: `docker-compose down` | 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)` | 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)` | 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` | |||||
| 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 {} + | |||||
| @@ -1,3 +0,0 @@ | |||||
| <?php echo 'du bist geil flo' ?> | |||||
| <?php phpinfo() ?> | |||||
| <div>hello</div> | |||||
| @@ -0,0 +1,2 @@ | |||||
| <?php | |||||
| echo 'hello world'; | |||||