Upgrade 2204 » History » Revision 13
Revision 12 (Enis Nuredini, 01.01.2024 11:59) → Revision 13/22 (Enis Nuredini, 01.01.2024 12:01)
h1. Docker Upgrade - Ubuntu 22-04 h2. 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: <pre> git clone -b ubuntu22 https://git.math.uzh.ch/typo3/typo3-docker.git </pre> h2. 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. <pre> 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. </pre> 9. If you are upgrading upgrade the qfq extension (new with FE Chat) in an a already existing project, project then you need to add the new enum value *chat* to into the column *type* from the table *FormElement* table. .