| @@ -1,27 +1,55 @@ | |||
| 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 172.0.0.1 | |||
| ENV PATH="$PATH" | |||
| WORKDIR /var/www/html | |||
| RUN apt-get update | |||
| # 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 -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 | |||
| # 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 \ | |||
| @@ -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_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"] | |||
| @@ -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' | |||
| name: spt-magento | |||
| services: | |||
| database: | |||
| image: mariadb | |||
| container_name: skeleton-mariadb | |||
| mariadb: | |||
| image: mariadb:10.4 | |||
| container_name: mariadb-10.4 | |||
| ports: | |||
| - "3401:3306" | |||
| environment: | |||
| # think about .env file here | |||
| MYSQL_ROOT_PASSWORD: root | |||
| volumes: | |||
| - ./../.db:/var/lib/mysql | |||
| - ./../.mariadb:/var/lib/mysql | |||
| restart: always | |||
| networks: | |||
| - default | |||
| php: | |||
| php-apache: | |||
| build: | |||
| context: ./ | |||
| context: . | |||
| dockerfile: Dockerfile | |||
| image: 'skeleton_php' | |||
| container_name: skeleton-php | |||
| image: 'php81_apache' | |||
| container_name: php-8.1-apache | |||
| environment: | |||
| - "APACHE_LOG_DIR:/src" | |||
| ports: | |||
| - '8101:80' | |||
| - '80:80' | |||
| - '443:443' | |||
| volumes: | |||
| - ./../:/var/www/html | |||
| - ./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: skeleton-phpmyadmin | |||
| container_name: phpmyadmin | |||
| restart: always | |||
| ports: | |||
| - "8102:80" | |||
| @@ -0,0 +1,3 @@ | |||
| .idea | |||
| .mariadb | |||
| .elasticsearch | |||
| @@ -1,29 +1,78 @@ | |||
| # contao-docker-test | |||
| # magento-test | |||
| #Installation: | |||
| # Some important information | |||
| # Some helpful docker commands: | |||
| # Build all containers | |||
| - `docker-compose up -d` | |||
| # Stop all containers | |||
| - `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 --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 spt_tbuddy /bin/bash` | |||
| - 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` | |||
| 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'; | |||