首页 > 解决方案 > 为什么我的符号链接没有链接,而是在我试图链接的目录中创建一个文件

问题描述

我正在尝试使用 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 文件夹中创建一个文件。

我认为我所做的所有步骤都是正确的,但显然它不起作用,所以任何帮助都将不胜感激。谢谢。

标签: dockerubuntudrupalcomposer-phpcommand-line-interface

解决方案


也许你可以在 github 上得到一点帮助:https ://github.com/wayoflegend/drupalindocker 。因为实际上您对composer命令有一点了解,可能是您没有正确的虚拟主机配置。


推荐阅读