Merge pull request 'changed sql driver and clean up' (#2) from testing into main

Reviewed-on: #2
This commit is contained in:
rama 2023-11-29 12:20:05 +01:00
commit 1b9d542542
3 changed files with 55 additions and 38 deletions

View File

@ -3,16 +3,14 @@
# Docker image for TYPO3 CMS
FROM php:8.2-apache
LABEL maintainer="Raphael Martin <raphy.martin@protonmail.ch>"
# set envirement
ENV LANG=de_AT
ENV LANG=de_AT.UTF-8
ENV APACHE_RUN_USER a2g-www
ENV TYPO3_VERSION 12.4.8
ENV TYPO3_SHA256CHECKSUM 8293b3441ec133fc8f9174fab5b88f450044ded0e188a0f12de37ad60a8bf8b3
# change apache user
RUN adduser --uid 1000 --gecos 'Apache User' --disabled-password $APACHE_RUN_USER \
&& chown -R "$APACHE_RUN_USER:$APACHE_RUN_USER" /var/lock/apache2 /var/run/apache2
@ -26,14 +24,17 @@ RUN apt-get install -y --no-install-recommends \
locales
RUN export LANG=${LANG} && \
echo "${LANG}.UTF-8 UTF-8" > /etc/locale.gen && \
export LC_ALL=${LANG} && \
export LC_TIME=${LANG} && \
export LANGUAGE=${LANG} && \
echo "${LANG} UTF-8" > /etc/locale.gen && \
/usr/sbin/locale-gen
# Export env vars
RUN { \
echo "export LC_ALL=${LANG}.UTF-8"; \
echo "export LANG=${LANG}.UTF-8"; \
echo "export LANGUAGE=${LANG}.UTF-8"; \
echo "export LC_ALL=${LANG}"; \
echo "export LANG=${LANG}"; \
echo "export LANGUAGE=${LANG}"; \
} >> ~/.bashrc
RUN cp ~/.bashrc /home/${APACHE_RUN_USER} && \
@ -57,38 +58,43 @@ RUN set -ex; \
libmcrypt-dev \
libpng-dev \
libpq-dev \
libzip-dev \
zlib1g-dev \
unzip \
zip \
sendmail \
graphicsmagick
RUN docker-php-ext-configure gd --with-libdir=/usr/include/ --with-jpeg --with-freetype && \
docker-php-ext-configure zip
RUN docker-php-ext-configure gd --with-libdir=/usr/include/ --with-jpeg --with-freetype
RUN docker-php-ext-install -j$(nproc) \
pdo \
pdo_mysql \
soap \
gd \
zip \
opcache \
intl
# Clean
RUN apt-get -y purge \
libxml2-dev libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng-dev \
zlib1g-dev \
wget && \
apt-get autoremove -y
RUN apt-get install -y --no-install-recommends \
libzip-dev \
zlib1g-dev && \
apt-get clean && \
zip
RUN docker-php-ext-install -j$(nproc) \
zip
# Clean
RUN apt-get -y purge \
libzip-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /usr/src/*
# Configure Apache as needed
# Configure Apache
RUN set -eux; \
docker-php-ext-enable opcache; \
@ -112,9 +118,7 @@ RUN { \
} > /usr/local/etc/php/conf.d/error-logging.ini
RUN set -eux; \
a2enmod rewrite expires; \
\
a2enmod remoteip; \
a2enmod rewrite expires remoteip headers; \
{ \
echo 'RemoteIPHeader X-Forwarded-For'; \
# these IP ranges are reserved for "private" use and should thus *usually* be safe inside Docker
@ -127,23 +131,20 @@ RUN set -eux; \
a2enconf remoteip; \
find /etc/apache2 -type f -name '*.conf' -exec sed -ri 's/([[:space:]]*LogFormat[[:space:]]+"[^"]*)%h([^"]*")/\1%a\2/g' '{}' +
# install TYPO3 surf
# RUN mkdir /usr/local/surf && \
# curl -L https://github.com/TYPO3/Surf/releases/download/3.4.6/surf.phar -o /usr/local/surf/surf.phar && \
# chmod +x /usr/local/surf/surf.phar && \
# ln -s /usr/local/surf/surf.phar /usr/local/bin/surf
# install TYPO3
RUN tar -xzf /tmp/download.tar.gz -C /var/www/ && \
rm /tmp/download*
RUN cd /var/www/html && \
ln -s ../typo3_src-* typo3_src && \
ln -s typo3_src/index.php && \
ln -s typo3_src/typo3 && \
touch FIRST_INSTALL
ln -s typo3_src/typo3
RUN chown -R $APACHE_RUN_USER:$APACHE_RUN_USER /var/www/html && \
chown -R $APACHE_RUN_USER:$APACHE_RUN_USER /var/www/typo3_src-* && \
@ -154,6 +155,4 @@ RUN { \
echo "ServerTokens Prod"; \
} >> /etc/apache2/apache2.conf
RUN a2enmod headers
VOLUME /var/www

View File

@ -21,16 +21,38 @@ sample .env:
PROJECT_DATA=./data
If you want to make the first install steps uncomment following line in your docker-compose.yml in the volumes configuration from the TYPO3.
# - "./LICENSE:/var/www/html/FIRST_INSTALL:ro"
after your the installation you should comment this part again thet your ${PROJECT_DATA}/typo3conf/system/settings.php from the will not change.
the container has just sendmail installed to change this you should change the settings.php for your mail and secure for the reversproxy.
for development:
'transport_sendmail_command' => '/usr/sbin/sendmail -bs',
and append:
['SYS']['features']['security.backend.enforceReferrer'] = true
because we are behind the reverse proxy.
then execute init with
./init
use in the install wizard for the db connection "db" and the port 3306 and use pdo_mysql driver.
now the typo3 first install should be accessable: https://${PROJECT_URL}
if you use the sample .env: https://typo3.localhost
use for the db connection "db"
after the install there is at the a error.

View File

@ -17,13 +17,14 @@ services:
- "traefik"
- "default"
volumes:
- "${PROJECT_DATA}/${PROJECT_NAME}-typo3/fileadmin:/var/www/html/fileadmin"
- "${PROJECT_DATA}/${PROJECT_NAME}-typo3/uploads:/var/www/html/uploads"
- "${PROJECT_DATA}/${PROJECT_NAME}-typo3/protected:/var/www/protected"
- "${PROJECT_DATA}/${PROJECT_NAME}-typo3/typo3conf:/var/www/html/typo3conf"
- "./apache-conf/sites-enabled:/etc/apache2/sites-enabled"
- "./php-conf/php.ini:/usr/local/etc/php/php.ini:ro"
## use for the first install
# - "./LICENSE:/var/www/html/FIRST_INSTALL:ro"
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"
depends_on:
@ -49,14 +50,9 @@ services:
- "--collation-server=utf8mb4_unicode_ci"
env_file: ".env"
volumes:
- "db:/var/lib/mysql"
# - "${PROJECT_DATA}/${PROJECT_NAME}-typo3/db:/var/lib/mysql"
- "${PROJECT_DATA}/${PROJECT_NAME}-typo3/db:/var/lib/mysql"
labels:
# Watchtower add to auto update
- "com.centurylinklabs.watchtower.enable=true"
# traefik
- "traefik.enable=false"
volumes:
db:
name: "${PROJECT_NAME}_db"
- "traefik.enable=false"