From 0d6250315ba91121da2617c49f91edcdb8634f6c Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 29 Sep 2023 12:46:41 +0200 Subject: [PATCH] working ssl --- .docker/Dockerfile | 63 +++++++++++++++++++++++------------- .docker/apache/localhost.crt | 19 +++++++++++ .docker/apache/localhost.key | 28 ++++++++++++++++ .docker/apache/vhost.conf | 41 +++++++++++++++++++++++ .docker/docker-compose.yml | 35 +++++++++++++------- .gitignore | 3 ++ README.md | 61 ++++++++++++++++++++++++++++++---- logs/tbserver-cron-log.txt | 0 logs/tbserver-log.txt | 0 public/index.php | 3 -- src/index.php | 2 ++ 11 files changed, 213 insertions(+), 42 deletions(-) create mode 100644 .docker/apache/localhost.crt create mode 100644 .docker/apache/localhost.key create mode 100644 .docker/apache/vhost.conf create mode 100644 .gitignore delete mode 100644 logs/tbserver-cron-log.txt delete mode 100644 logs/tbserver-log.txt delete mode 100755 public/index.php create mode 100644 src/index.php diff --git a/.docker/Dockerfile b/.docker/Dockerfile index b62d220..f4844e2 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -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"] \ No newline at end of file diff --git a/.docker/apache/localhost.crt b/.docker/apache/localhost.crt new file mode 100644 index 0000000..baa2be1 --- /dev/null +++ b/.docker/apache/localhost.crt @@ -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----- diff --git a/.docker/apache/localhost.key b/.docker/apache/localhost.key new file mode 100644 index 0000000..1181840 --- /dev/null +++ b/.docker/apache/localhost.key @@ -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----- diff --git a/.docker/apache/vhost.conf b/.docker/apache/vhost.conf new file mode 100644 index 0000000..72b23f1 --- /dev/null +++ b/.docker/apache/vhost.conf @@ -0,0 +1,41 @@ +LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so +LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so + + + ServerName localhost + DocumentRoot /var/www/html + + + Options Indexes FollowSymLinks Includes execCGI + AllowOverride All + Require all granted + allow from all + + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + + + + + 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" + + + SSLOptions +StdEnvVars + + + + Options Indexes FollowSymLinks Includes execCGI + AllowOverride All + Require all granted + + + \ No newline at end of file diff --git a/.docker/docker-compose.yml b/.docker/docker-compose.yml index 771ca92..2259051 100644 --- a/.docker/docker-compose.yml +++ b/.docker/docker-compose.yml @@ -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" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8bf177f --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea +.mariadb +.elasticsearch \ No newline at end of file diff --git a/README.md b/README.md index acec19e..41c780e 100644 --- a/README.md +++ b/README.md @@ -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` \ No newline at end of file +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 {} + \ No newline at end of file diff --git a/logs/tbserver-cron-log.txt b/logs/tbserver-cron-log.txt deleted file mode 100644 index e69de29..0000000 diff --git a/logs/tbserver-log.txt b/logs/tbserver-log.txt deleted file mode 100644 index e69de29..0000000 diff --git a/public/index.php b/public/index.php deleted file mode 100755 index 2031d3d..0000000 --- a/public/index.php +++ /dev/null @@ -1,3 +0,0 @@ - - -
hello
\ No newline at end of file diff --git a/src/index.php b/src/index.php new file mode 100644 index 0000000..19339d9 --- /dev/null +++ b/src/index.php @@ -0,0 +1,2 @@ +