docker安装laravel

官网文档:
https://learnku.com/docs/laravel/9.x/installation/12200#getting-started-on-macos

curl -s "https://laravel.build/example-app" | bash

此 URL 中的「example-app」更改为你喜欢的任何内容。Laravel 应用程序的目录将在你执行命令的目录中创建。

创建项目后,你可以导航到应用程序目录并启动 Laravel Sail。Laravel Sail 提供了一个简单的命令行界面,用于与 Laravel 的默认 Docker 配置进行交互:

cd example-app
./vendor/bin/sail up

去官网下一下.env.example,复制一份重新命名为自己要用的变量

https://github.com/laravel/laravel/blob/9.x/.env.example

如果是用上面的sail启动的话,会下载很多没啥用的东西,就挺慢的。如果不是非得用docker的话,用composer下载会快很多。

根据你项目需要,修改你的docker-compose.yml文件。比如镜像啥的、端口号啥的:

# For more information: https://laravel.com/docs/sail
version: '3'
services:
    appsmith-api.test:
        build:
            context: ./vendor/laravel/sail/runtimes/8.1
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        image: appsmith-api/app
        extra_hosts:
            - 'host.docker.internal:host-gateway'
        ports:
            - '91: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:
            - '33060: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'
            - './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
        networks:
            - sail
        healthcheck:
            test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
            retries: 3
            timeout: 5s
networks:
    sail:
        driver: bridge
volumes:
    sail-mysql:
        driver: local

使用命令,停掉现在运行的:

docker-compose down 

在使用命令,重启你修改后的的docker-compose.yml:

docker-compose up -d

进入到容器里面,可以用命令,也可以在docker桌面版里面直接进入:

docker exec -it "CONTAINER ID" /bin/bash

 

 连接mysql,最开始是没有密码登入的。

mysql -uroot -p

没关系,按照这个文档重新设置:

https://blog.csdn.net/u012069313/article/details/123051399

执行语句修改 MySQL root 密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxx';

报错:

ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'localhost'

解决方法

执行语句:

use mysql;
select user,host from user where user='root';

 发现 host 列的值是 ‘%’,因此将修改密码语句改为:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
flush privileges;

问题解决。

一个命令,可以生成随机的密码:

cat /dev/urandom | base64  | head -c 15

 

posted @ 2022-11-10 14:30  爱家家的卡卡  阅读(591)  评论(0编辑  收藏  举报