0

Currently I am facing an issue when creating a WordPress page using docker-compose. For some actions like importing a theme, i get the famous cURL error 28.

Also the site-health is displaying:

REST API Endpoint: http://192.168.0.4:8000/wp-json/wp/v2/types/post?context=edit
REST API Response: (http_request_failed) cURL error 28: Connection timed out after 10002 milliseconds

Here is my docker-compose.yml

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: *******
      MYSQL_DATABASE: wordpressdb
      MYSQL_USER: *******
      MYSQL_PASSWORD: *******

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    volumes:
      - ./php.ini:/usr/local/etc/php/conf.d/uploads.ini
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: *******
      WORDPRESS_DB_PASSWORD: *******
      WORDPRESS_DB_NAME: wordpressdb
volumes:
    db_data:

I am accessing the admin panel trough an internal IP using port 8000.

what i have tried so far:

  • removing all the plugins
  • increasing memory_limit, post_max_size, upload_max_filesize, max_execution_time, max_input_time, max_input_vars, max_file_uploads, default_socket_timeout (therefore the php.ini mapping)
  • appending add_filter('http_request_timeout','http_request_timeout_callback'); and the corresponding function to functions.php

Do you have any further suggestions? Thank you in advance!

O. Jones
  • 103,626
  • 17
  • 118
  • 172
A. Mair
  • 21
  • 2

1 Answers1

1

After some hours of try and error, I finally found the error.

The issue was the port mapping.

ports:
      - "8000:80"

8080 is OUTSIDE the container

80 is INSIDE the container

The container is trying to reach itself using port 8000, which is only accessible from the outside.

A. Mair
  • 21
  • 2