没有这样的服务:laravel.test

问题描述 投票:0回答:5

我是 Dockers / Sail 初学者,想尝试一个新的 Laravel 项目。

所以,当我执行 Laravel 全新安装并运行

sail up
时,我收到此错误:

no such service: laravel.test

但是,

http://localhost
返回预期结果。

但是

http://laravel.test
不会返回任何内容。

刚刚更新了 PHP、Laravel 和 Docker - 因此它们在最新版本上运行。

你知道我该如何解决这个问题吗?

编辑:添加了整个 docker-compose.yml 文件

version: '3'
services:
    laravel.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.1
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: sail-8.1/app
        extra_hosts:
            - 'host.docker.internal:host-gateway'
        ports:
            - '${APP_PORT:-80}:80'
        environment:
            WWWUSER: '${WWWUSER}'
            LARAVEL_SAIL: 1
            XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
            XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
        volumes:
            - '.:/var/www/html'
        networks:
            - sail
        depends_on:
            - mysql
    mysql:
        image: 'mysql/mysql-server:8.0'
        ports:
            - '${FORWARD_DB_PORT:-3306}:3306'
        environment:
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ROOT_HOST: "%"
            MYSQL_DATABASE: '${DB_DATABASE}'
            MYSQL_USER: '${DB_USERNAME}'
            MYSQL_PASSWORD: '${DB_PASSWORD}'
            MYSQL_ALLOW_EMPTY_PASSWORD: 1
        volumes:
            - 'sail-mysql:/var/lib/mysql'
        networks:
            - sail
        healthcheck:
            test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
            retries: 3
            timeout: 5s   
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            MYSQL_USERNAME: "${DB_USERNAME}"
            MYSQL_ROOT_PASSWORD: "${DB_PASSWORD}"
            PMA_HOST: mysql    
        networks:
            - sail
networks:
    sail:
        driver: bridge
volumes:
    sail-mysql:
        driver: local
php laravel docker laravel-sail
5个回答
2
投票

名字

此服务的名称

laravel.test
选得不好。所有其他服务都提供了关于容器中正在运行哪些服务的更正确的线索。 在
laravel.test
的情况下,运行一个 php 内置 Web 服务器,该服务器由主管运行。例如,更好的名称是
php_webserver

无法访问 laravel.test

域名是从域名注册商那里购买的(尽管这更像是租用)。然而,tld

.test
保留用于测试,无法购买。创建假域名进行测试的最常见方法是修改您的
hosts
文件。

  • Windows:
    C:\Windows\System32\Drivers\etc\hosts
  • 麦克:
    /etc/hosts
  • Linux:
    /etc/hosts

此文件需要管理员访问权限,因此您需要以管理员身份启动文本编辑器才能进行更改。在这里您可以使用内容进行换行

127.0.0.1 laravel.test

这将使您的操作系统在尝试访问时检查本地主机

laravel.test

您当然可以像往常一样继续使用 127.0.0.1 检查您的网站。


1
投票

您应该首先将其添加到您的项目中:

composer require laravel/sail --dev

之后,安装sail:

php artisan sail:install

然后:

./vendor/bin/sail up // or sail up

1
投票

我已经通过添加解决了这个问题

172.19.0.1      laravel.test

在我电脑上的主机文件中。我正在使用 liunx mint

sudo nano /etc/hosts

1
投票

这可能是因为 laravel.test 域名没有在您的系统中注册 所以如果你使用 Linux,请使用 @Saravana Sai 的 答案

但是如果您使用 Windows,则主机文件存在于

C:\Windows\System32\Drivers\etc\hosts

注意:您需要管理权限才能编辑此文件


0
投票

我删除了旧的 docker-compose.yml 并且它起作用了

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.