在 Mac 上,我在 Docker 中运行 Lando。我使用的是 Lando v3.0.1 并且成功运行了 Docker Desktop v2.2.0.5。
Docker 发布了一个稳定的更新 v.2.3.0.3,我安装了它。之后,我尝试运行 Lando,但收到一条警告消息,指出不支持 Docker 桌面版本。
所以,我想知道是否可以在不卸载 Docker 的情况下回滚到我以前的 Docker 桌面版本。
我正在使用名为 Lando(基于 Docker)的应用程序在本地(在 Ubuntu 上)运行 Wordpress 实例。我正在开发一个自定义的 Wordpress 插件,我想在 Lando 中符号链接到 Wordpress,但它不起作用。符号链接在那里,指向正确的本地目录但未被识别。
$ ln -s /home/user/Source/ta-clicklist ta-clicklist
$ pwd
/home/user/Documents/mysite.local/wordpress/wp-content/plugins
$ ls -lah
total 36K
drwxr-xr-x 7 user user 4.0K Jul 14 16:36 .
drwxr-xr-x 6 user user 4.0K Jul 14 16:34 ..
drwxr-xr-x 4 user user 4.0K Jul 13 14:40 akismet
-rw-r--r-- 1 user user 2.6K Mar 18 2019 hello.php
-rw-r--r-- 1 user user 28 Jun 5 2014 index.php
lrwxrwxrwx 1 user user 30 Jul 14 16:36 ta-clicklist -> …
Run Code Online (Sandbox Code Playgroud) 我的公司有在我的系统上运行在 Docker 中的软件,但没有使用 Lando。该软件通过 URL 提供一些数据:http : //local.relay.cool : 8081/clicks-bff/api/ads/
我可以在匿名浏览器中点击这个 URL,从终端 cURL 它,然后通过 Postman 加载它,它返回预期的数据。
我正在使用 Wordpress 配方运行 Lando,并且正在开发一个插件。这个插件可以访问外部 URL 并检索数据,我尝试了几个不同的只是为了确认。
但是,当 Lando 尝试访问上面列出的 URL 时,我收到一个 WP_Error:
object(WP_Error)#1269 (2) { ["errors"]=> array(1) { ["http_request_failed"]=> array(1) { [0]=> string(58) "cURL error 28: Resolving timed out after 5514 milliseconds" } } ["error_data"]=> array(0) { } }
Run Code Online (Sandbox Code Playgroud)
这是 .lando.yaml 配置块:
name: my app name
recipe: wordpress
config:
webroot: wordpress
Run Code Online (Sandbox Code Playgroud)
是否缺少某些配置选项以允许 Lando 访问我机器上的另一个 URL?
我尝试了这个(不应该返回任何内容):
$ lando ssh -s appserver -u root -c "echo \"10.0.0.132 pds\" >> /etc/hosts"
10.0.0.132 pds >> /etc/hosts
$ lando ssh -s appserver -u root -c "cat /etc/hosts"
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.26.0.2 8da36421fdb0
172.19.0.3 8da36421fdb0
172.18.0.4 8da36421fdb0
Run Code Online (Sandbox Code Playgroud)
这表明它没有被添加。当我以 root 身份进入并在容器内执行此操作时,它就可以工作了。
我想在构建脚本中自动执行此操作。如何?我究竟做错了什么?
显然这可以通过“docker run --add-host”来完成,但是如何将其包含在 .lando.yml 文件中?
有什么方法可以创建一个正确的、真正自定义的 .lando.yml 文件,这样它就不会使用任何配方?如何在 Lando 中指定“只给我 Apache、MariaDB、PHP”?
我试过这个
# The name of the app
name: mariadb
# Give me http://mariadb.lndo.site and https://mariadb.lndo.site
proxy:
html:
- mariadb.lndo.site
# Set up my services
services:
# Set up a basic webserver running the latest nginx with ssl turned on
html:
type: nginx
ssl: true
webroot: www
# Spin up a mariadb container called "database"
# NOTE: "database" is arbitrary, you could just as well call this "db" or "kanye"
database:
# Use mariadb version …
Run Code Online (Sandbox Code Playgroud) 我从使用 Docksal 转移到 Acquia ADS (Lando),它自动将我的 Drush 从 8 升级到 9。我的本地站点运行良好,但我无法让 Drush 9“查看”我的 Drupal 8 站点。别名似乎已创建并添加到 drush/sites 文件夹中,并且运行 drush site:alias 确实会显示它们。但是,运行 drush status 将我的 Drupal 根显示为 /app。我的 Drupal 根目录是 /app/docroot。我的别名文件确实将此作为其根目录(对于本地)。我不确定为什么 Drush 不使用它知道的别名文件。我试过了:
冲@self(或@local)列表,我得到一些命令和最后的声明:
[注意] 未找到 Drupal 根。传递 --root 或 @siteAlias 以查看特定于 Drupal 的命令。
做 drush @local(or @self) cr 返回:
在 BootstrapHook.php 第 32 行:Bootstrap 失败。使用 -vvv 运行您的命令以获取更多信息。
使用 -vvv:
异常跟踪:在 /app/vendor/drush/drush/src/Boot/BootstrapHook.php:32 Drush\Boot\BootstrapHook->initialize() 在 /app/vendor/consolidation/annotated-command/src/Hooks/Dispatchers/ InitializeHookDispatcher.php:34 Consolidation\AnnotatedCommand\Hooks\Dispatchers\InitializeHookDispatcher->callInitializeHook() 在 /app/vendor/consolidation/annotated-command/src/Hooks/Dispatchers/InitializeHookDispatcher.php:27 Commandsolidation\Annotated\Annotated InitializeHookDispatcher->initialize() at /app/vendor/consolidation/annotated-command/src/CommandProcessor.php:145 Consolidation\AnnotatedCommand\CommandProcessor->initializeHook() at /app/vendor/consolidation/annotated-command/src/AnnotatedCommand .php:289 Consolidation\AnnotatedCommand\AnnotatedCommand->initialize() 在 /app/vendor/symfony/console/Command/Command.php:第 221 …
我已经浏览了我能找到的关于这个主题的所有帖子,但我找不到解决方案。因此,与其将头发拉得更远,我将发布一个问题。
我有一个 Lando 安装(运行 Drupal 8,但我正在测试一个简单的phpinfo()
脚本),Xdebug 确认正在运行。每当我添加断点并运行脚本时,它都无法停止。
用于 Xdebug 的自定义 Lando .ini:
[PHP]
Xdebug
xdebug.max_nesting_level = 256
xdebug.show_exception_trace = 0
xdebug.collect_params = 0
; Extra custom Xdebug setting for debug to work in VSCode.
xdebug.remote_enable = 1
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.remote_host = ${LANDO_HOST_IP}
xdebug.remote_connect_back = 0
xdebug.remote_mode = req
xdebug.remote_autostart = On
xdebug.remote_log = /tmp/xdebug.log
xdebug.idekey = VSCODE
max_execution_time = 0
Run Code Online (Sandbox Code Playgroud)
xdebug.log 的输出
245] Log opened at 2020-09-09 14:42:21
[245] I: Connecting to configured address/port: …
Run Code Online (Sandbox Code Playgroud)