Не удается заставить Docker работать с headless-wp-starter

Я публикую этот вопрос здесь в надежде, что я просто неправильно использую Docker, и кто-то может объяснить, как это исправить. Я не думаю, что проблема в самом проекте GitHub headless-wp-starter, но в случае, если это так, я спрошу об этом где-нибудь еще.

В настоящее время я пытаюсь установить это для разработки локально на Ubuntu 18.10. Вот мой процесс установки. Я удостоверился, что удалил тома / изображения / контейнеры и т. Д. Из моей последней установки Docker и начал с нуля.

  1. Я пытаюсь установить headless-wp-starter, начните с установки docker а также composer

    sudo apt install composer docker`
    
  2. Установка docker-compose отдельно, как описано в документации по Docker здесь.

  3. Тестирование docker-compose, чтобы увидеть, все ли работает.

    docker-compose --version  
    docker-compose version 1.24.0, build 0aa59064  
    
  4. Переместить содержимое git в совершенно новую папку, расположенную в /opt/lampp/htdocs/headless-wp,

    cd /opt/lampp/htdocs/headless-wp  
    sudo docker-compose up -d  
    

    Мне нужно sudo, потому что я получаю:

    ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?
    
    If it's at a nonstandard location, specify the URL with the DOCKER_HOST environment variable.
    
  5. Все отлично работает до конца, где я получаю:

    Creating db-headless      ... done
    Creating frontend-graphql ... done
    Creating frontend         ... done
    Creating wp-headless      ... error
    
    ERROR: for wp-headless      
    Cannot start service wp-headless: OCI runtime create failed:   
    container_linux.go:344: starting container process caused "chdir to cwd (\"/var/www/html\") set in config.json failed: 
    permission denied": unknown   
    ERROR: for wp-headless      
    Cannot start service wp-headless: OCI runtime create failed:    
    container_linux.go:344: starting container process caused "chdir to cwd (\"/var/www/html\") set in config.json failed: permission denied": unknown      
    ERROR: Encountered errors while bringing up the project.  
    

Я совсем не знаком с Докером. Я гуглил это, но не смог найти решение.

Я смог запустить wp-headless, изменив эту часть docker-compose.yml:

wp-headless:
    build: .
    command: bash -c 'install_wordpress && apache2-foreground'
    container_name: wp-headless
    depends_on:
        - db-headless
    env_file: ./.env
    ports:
        - '8080:8080'
    user: www-data
    volumes:
        - ./wordpress:/var/www/html
        - ./docker/install_wordpress.sh:/usr/local/bin/install_wordpress
        - ./docker/migratedb_import.sh:/usr/local/bin/migratedb_import
        - ./docker/postlightheadlesswpstarter.wordpress.xml:/var/www/postlightheadlesswpstarter.wordpress.xml
        - ./docker/plugins:/var/www/plugins

в

wp-headless:
    build: .
    command: bash -c 'install_wordpress && apache2-foreground'
    container_name: wp-headless
    depends_on:
        - db-headless
    env_file: ./.env
    ports:
        - '8080:8080'
    user: www-data
    volumes:
        - ./wordpress:/opt/lampp/htdocs/headless-wp
        - ./docker/install_wordpress.sh:/usr/local/bin/install_wordpress
        - ./docker/migratedb_import.sh:/usr/local/bin/migratedb_import
        - ./docker/postlightheadlesswpstarter.wordpress.xml:/var/www/postlightheadlesswpstarter.wordpress.xml
        - ./docker/plugins:/var/www/plugins

Даже если WordPress работает, JSON не выводится, поэтому интерфейс не работает.

Изменить: я попытался установить Docker, следуя этому посту. Я также пытался извлечь GIT для /var/www/html но я все еще получаю ту же ошибку:

/var/www/html/headless-wp-starter-master$ sudo docker-compose up -d
db-headless is up-to-date
frontend-graphql is up-to-date
frontend is up-to-date
Starting wp-headless ... error

ERROR: for wp-headless    
Cannot start service wp-headless: OCI runtime create failed:  
container_linux.go:345: starting container process caused "chdir to cwd   (\"/var/www/html\") set in config.json failed: permission denied": unknown
ERROR: for wp-headless    
Cannot start service wp-headless: OCI runtime create failed:  
container_linux.go:345: starting container process caused "chdir to cwd (\"/var/www/html\") set in config.json failed: permission denied": unknown  
ERROR: Encountered errors while bringing up the project.

Ссылка на полный журнал установки

Вопросы:

  • Эта установка кажется правильной или я где-то допустил ошибку?

  • Должен ли я переместить headless-wp-starter, который был загружен с GitHub, в другую папку, предопределенную Docker?

  • Я устанавливаю правильную версию Docker? Кажется, есть много версий, и это также вызывает путаницу.

1 ответ

Синтаксис большинства привязок в docker а также docker-compose является host-item:container-item, Итак, когда вы делаете:

    volumes:
        - ./wordpress:/opt/lampp/htdocs/headless-wp

Вы связываете свой местный ./wordpress в /opt/lampp/htdocs/headless-wp в контейнере, но ничто не указывает на это в файлах конфигурации WP. Поскольку исходная конфигурация создает привязку между относительным каталогом хоста (./wordpress) и ожидаемый каталог в контейнере, вам не нужно это менять.

Другие вопросы по тегам