问题描述
为了运行 Drupal 应用程序,我设法使用了一些具有此配置的容器:
version: '3.1'
services:
drupal:
depends_on:
- postgres
build:
context: .
dockerfile: Dockerfile
ports:
- 8080:80
volumes:
- type: bind
source: ./workspace
target: /opt/workspace
networks:
- beayoga
restart: always
postgres:
image: postgres:13.2
environment:
POSTGRES_PASSWORD: example
volumes:
- pg_data:/var/lib/postgresql/data
networks:
- beayoga
restart: always
pgadmin:
depends_on:
- postgres
image: dpage/pgadmin4
ports:
- 443:443
- 8081:80
environment:
- PGADMIN_DEFAULT_EMAIL=foo@bar.com
- PGADMIN_DEFAULT_PASSWORD=foobar
networks:
- beayoga
volumes:
pg_data:
networks:
beayoga:
它运行良好,从我的主机更改文件时,我可以看到我的容器中的更改(使用交互式终端),而从我的容器更改文件时,我可以看到我的主机中的更改。
当我想查看更改时,我必须运行此命令:
当我从我的容器运行它时,我得到了这个:
www-data@5c6c061c1519:/opt/workspace$ ./vendor/bin/drush cc
Choose a cache to clear [all]:
[0] Cancel
[1] drush
[2] theme-registry
[3] router
[4] css-js
[5] render
[6] plugin
[7] bin
[8] views
然后我可以选择 [5]
来查看我网页中的更改。
我想从我的主机运行这个相同的命令,以便将来我不需要使用交互式终端连接到容器。
当我从我的主机运行完全相同的命令时,我得到这个:
➜ workspace git:(dev) ✗ ./vendor/bin/drush cc
Choose a cache to clear [all]:
[0] Cancel
[1] drush
我只显示了这两个选项,我不能选择[5] render
有人知道发生了什么吗?我怎样才能获得完整的选择列表?
到目前为止我尝试过的:
我在 google 上看到一些答案,表明它可能与数据库有关。所以我在我的主机中安装了 psql 并在我的 /etc/hosts
文件中添加了 postgres 容器的名称(使用运行 docker inspect
时给出的 ip) ,但我仍然在列表中显示相同的 2 个项目,没有更多...
编辑
回答@Patrick W 评论:
远程(容器)上的渲染和状态
www-data@5c6c061c1519:/opt/workspace$ ./vendor/bin/drush cc render
[success] 'render' cache was cleared.
www-data@5c6c061c1519:/opt/workspace$ ./vendor/bin/drush status
Drupal version : 9.1.4
Site URI : http://default
DB driver : pgsql
DB hostname : postgres
DB port : 5432
DB username : postgres
DB name : postgres_development
Database : Connected
Drupal bootstrap : Successful
Default theme : my_custom_theme
Admin theme : seven
PHP binary : /usr/local/bin/PHP
PHP config :
PHP OS : Linux
Drush script : /opt/workspace/vendor/drush/drush/drush
Drush version : 10.4.0
Drush temp : /tmp
Drush configs : /opt/workspace/vendor/drush/drush/drush.yml
Install profile : standard
Drupal root : /opt/workspace/web
Site path : sites/default
Files,Public : sites/default/files
Files,Temp : /tmp
在主机上呈现和状态
➜ workspace git:(dev) ✗ ./vendor/bin/drush cc render
In CacheCommands.PHP line 261:
'render' cache requires a working Drupal site to operate on. Use the --root and --uri options,or a site @alias,or cd to a directory containing a Drupal settings.PHP file.
➜ workspace git:(dev) ✗ ./vendor/bin/drush status
Drupal version : 9.1.4
Site URI : http://default
DB driver : pgsql
DB hostname : postgres
DB port : 5432
DB username : postgres
DB name : postgres_development
PHP binary : /usr/bin/PHP
PHP config : /etc/PHP.ini
PHP OS : Linux
Drush script : /home/david/Desktop/beayoga/workspace/vendor/drush/drush/drush
Drush version : 10.4.0
Drush temp : /tmp
Drush configs : /home/david/Desktop/beayoga/workspace/vendor/drush/drush/drush.yml
Drupal root : /home/david/Desktop/beayoga/workspace/web
Site path : sites/default
但是我在完全相同的目录中,因为它们绑定在一起......
您知道 Drupal 如何知道它是否已安装吗?也许它会尝试查看不在主机上的另一个文件夹?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)