Не удается заставить Docker работать с headless-wp-starter
Я публикую этот вопрос здесь в надежде, что я просто неправильно использую Docker, и кто-то может объяснить, как это исправить. Я не думаю, что проблема в самом проекте GitHub headless-wp-starter, но в случае, если это так, я спрошу об этом где-нибудь еще.
В настоящее время я пытаюсь установить это для разработки локально на Ubuntu 18.10. Вот мой процесс установки. Я удостоверился, что удалил тома / изображения / контейнеры и т. Д. Из моей последней установки Docker и начал с нуля.
Я пытаюсь установить headless-wp-starter, начните с установки
docker
а такжеcomposer
sudo apt install composer docker`
Установка docker-compose отдельно, как описано в документации по Docker здесь.
Тестирование docker-compose, чтобы увидеть, все ли работает.
docker-compose --version docker-compose version 1.24.0, build 0aa59064
Переместить содержимое 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.
Все отлично работает до конца, где я получаю:
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
) и ожидаемый каталог в контейнере, вам не нужно это менять.