docker - 为什么我的符号链接没有链接,而是在我试图链接的目录中创建一个文件
问题描述
我正在尝试使用 Docker 和 Composer 在 Drupal 上做一个项目。这是我的 docker-compose.yml
app:
build: ./app/.
volumes:
- /home/username/practicas/docker_drupal/drupal_ensi:/var/www
links:
- db
ports:
- 86:80
db:
image: mariadb:10.5.3
volumes:
- /home/username/practicas/docker_drupal/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=admin
- MYSQL_PASSWORD=root
- MYSQL_DATABASE=drupalDb
这是我使用 composer 创建 Drupal 项目的地方。
~/practicas/docker_drupal$ docker exec -it docker_drupal_app_1 bash
root@11da03a5baab:/var/www/html# php -d memory_limit=-1 /usr/local/bin/composer create-project drupal-composer/drupal-project:8.x-dev some-dir --no-interaction
然后我将some-dir
目录的所有内容移动到/var/www/
关卡
root@11da03a5baab:/var/www/html# ls -l
total 4
drwxr-xr-x 6 root root 4096 May 22 09:57 some-dir
root@11da03a5baab:/var/www/html# cd ..
root@11da03a5baab:/var/www# ls -l
total 4
drwxr-xr-x 3 root root 4096 May 22 09:56 html
root@11da03a5baab:/var/www# mv html/some-dir/* ./
root@11da03a5baab:/var/www# ls -l
total 396
-rw-r--r-- 1 root root 18046 May 22 09:56 LICENSE
-rw-r--r-- 1 root root 6451 May 22 09:56 README.md
-rw-r--r-- 1 root root 2370 May 22 09:56 composer.json
-rw-r--r-- 1 root root 343241 May 22 09:57 composer.lock
drwxr-xr-x 4 root root 4096 May 22 09:56 drush
drwxr-xr-x 3 root root 4096 May 22 09:56 html
-rw-r--r-- 1 root root 321 May 22 09:56 load.environment.php
-rw-r--r-- 1 root root 481 May 22 09:56 phpunit.xml.dist
drwxr-xr-x 3 root root 4096 May 22 09:56 scripts
drwxr-xr-x 54 root root 4096 May 22 09:57 vendor
drwxr-xr-x 7 root root 4096 May 22 09:57 web
然后尝试做 和 之间的符号web
链接html
。当服务器默认尝试转到 html 目录时,它应该重定向到 web 目录,因为那里是 Drupal 项目所在的位置。(我不知道我应该在容器内部还是外部执行此操作,但我认为这并不重要,因为它安装在 docker-composer.yml 中,对吧?我现在不知道了)。
每当我尝试这样做时ln -s web/ html
,它只会在 html 文件夹中创建一个文件,它不会创建链接:c
~/practicas/docker_drupal/drupal_ensi$ sudo ln -s web/ html
[sudo] password for yindazai:
yindazai@yindazai-Predator-PH317-52:~/practicas/docker_drupal/drupal_ensi$ ls -l
total 396
-rw-r--r-- 1 root root 2370 may 22 11:56 composer.json
-rw-r--r-- 1 root root 343241 may 22 11:57 composer.lock
drwxr-xr-x 4 root root 4096 may 22 11:56 drush
drwxr-xr-x 3 root root 4096 may 22 12:07 html
-rw-r--r-- 1 root root 18046 may 22 11:56 LICENSE
-rw-r--r-- 1 root root 321 may 22 11:56 load.environment.php
-rw-r--r-- 1 root root 481 may 22 11:56 phpunit.xml.dist
-rw-r--r-- 1 root root 6451 may 22 11:56 README.md
drwxr-xr-x 3 root root 4096 may 22 11:56 scripts
drwxr-xr-x 54 root root 4096 may 22 11:57 vendor
drwxr-xr-x 7 root root 4096 may 22 11:57 web
yindazai@yindazai-Predator-PH317-52:~/practicas/docker_drupal/drupal_ensi/html$ ls -l
total 4
drwxr-xr-x 2 root root 4096 may 22 11:58 some-dir
lrwxrwxrwx 1 root root 4 may 22 12:07 web -> web/
最后一部分是在容器外完成的,但如果我在容器内完成,它不会创建链接,而是在 html 文件夹中创建一个文件。
我认为我所做的所有步骤都是正确的,但显然它不起作用,所以任何帮助都将不胜感激。谢谢。
解决方案
也许你可以在 github 上得到一点帮助:https ://github.com/wayoflegend/drupalindocker 。因为实际上您对composer命令有一点了解,可能是您没有正确的虚拟主机配置。
推荐阅读
- router - BGPView.io 如何确定流量方向
- flutter - Flutter:在 Future 函数中使用 try/catch
- wordpress - 该网站遇到技术难题
- html - 如何修复:SAP Cloud Platform 登录窗口在 iframe 中呈现空白
- c# - ASP.NET MVC 中的 SignalR“访问 XMLHttpRequest ...”错误
- c# - 有没有办法从实例列表中搜索并通过用户输入显示特定的实例
- ansible - 使用 ansible 剧本的 nexus 的“默认管理员密码”更改
- c++ - 这个基于范围的“for”语句需要一个合适的函数,但没有找到
- c# - 模型绑定返回 NULL
- python - 将单元格值转换为列标题,如果在 python 中匹配,则用 1 填充