Upgrade 2204 » History » Revision 14
« Previous |
Revision 14/22
(diff)
| Next »
Carsten Rose, 05.01.2024 10:05
Docker Upgrade - Ubuntu 22-04¶
New docker container¶
It is recommended to create a new docker container with the new typo3 docker branch ubuntu22 instead of upgrading an existing one.
How to clone the specific branch:
git clone -b ubuntu22 https://git.math.uzh.ch/typo3/typo3-docker.git
Upgrading existing docker¶
Manual to upgrade an existing docker container and setting up websocket server.
Caution: The used websocket port 8090 in this manual is only an example. Please use a port number which is not already used from others on the same server.
1. At least Ubuntu 22.04 needs to be installed in docker container. (Usually done inside Dockerfile.nginx): FROM ubuntu:22.04 1.1 Add the following to the top of your docker file (after FROM ubuntu:22.04) if it does not already exist. It defines the timezone configurations for the ubuntu 22.04 installation: ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get install -y tzdata && \ ln -fs /usr/share/zoneinfo/Europe/Zurich /etc/localtime && \ dpkg-reconfigure --frontend noninteractive tzdata 1.2(optional) If you are using wkhtmltopdf 0.12.6-1, you will need to manually install libssl1.1 in the docker file before wkhtmltopdf is installed. Reason: libssl1.1 is no longer included in Ubuntu 22.04: # Manually install libssl1.1 RUN wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb RUN dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb 2. Best practice is to expose the websocket port in the dockerfile (Dockerfile.nginx), it should be added before the services start, example: EXPOSE 8090 CMD service php8.1-fpm start && service ssh start && nginx 3. Add new websocket port (8090) to nginx webserver in Dockerfile, example: nginx: image: webserver build: dockerfile: Dockerfile.nginx ports: - "46301:46301" - "51301:51301" - "44909:22" - "8090:8090" <------ Websocket port 4. nginx config file adjustments, add following proxy: location /ws { proxy_pass http://mydomain:8090; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; } 5.(optional) If you upgrade your docker from an older version of ubuntu, your xdebug configuration may not work anymore. Adjustments are needed in the .ini file (99-math.ini), replace the existing xdebug configuration with this one: # New xdebug 3 version: xdebug.mode = debug xdebug.start_with_request = yes xdebug.client_port = 51301 xdebug.discover_client_host = 1 xdebug.max_nesting_level = 400 #xdebug.log=/var/log/apache2/xdebug.log 6. Start/Restart (Build first time) the docker container. 7. Set the configured websocket port and websocket url in QFQ Config, examples: websocketPort: 8090 websocketUrl: ws://mydomain:46301/ws 8. If websocketPort is set in qfq config, the websocket server should start automatically the first time a web page with qfq content is loaded.
9. If you are upgrading the qfq extension (new with FE Chat) in an already existing project, then you need to add the new enum value chat to the column type from the FormElement table.
Updated by Carsten Rose 6 months ago · 14 revisions