docker-compose配置laravel环境

docker-compose搭建lareval环境遇到的坑

images不存在

1、修改docker的镜像源
2、docker search 确认是否存在

ENTRYPOINT脚本路径

1、先复制到/usr/local/bin目录下
2、在填入绝对路径
eg:(dockerfile文件中)
    COPY ./docker-entrypoint.sh /usr/local/bin/
    ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]

ENTRYPOINT脚本权限

1、脚本记得给权限(dockerfile文件中)
eg: RUN chmod 755 /usr/local/bin/docker-entrypoint.sh

mysql默认密码及库

设置两个环境:(docker-compose.yaml文件中)
1、mysql初始密码:MYSQL_ROOT_PASSWORD
2、mysql初始化创建的数据库:MYSQL_DATABASE
eg: 
    MYSQL_ROOT_PASSWORD: 123123
    MYSQL_DATABASE: laravel_tet

初始化sql

1、搭建开发环境的时候,肯定会有已有的数据结果和数据,需要进行初始化
2、在docker mysql的官方镜像中,镜像首次启动时,会自动执行这个目录(/docker-entrypoint-initdb.d)下的脚本
3、所以我们直接把需要执行的脚本挂载到执行的目录中去
eg:
    volumes:
        - ./build/sql:/docker-entrypoint-initdb.d

修改image名称

1、设置image的值;如果是根据dockerfile来build,那么就是image的值;如果image是dockerhub中的镜像名称,那么就是这个镜像名称
eg:(docker-compose.yaml文件中)
    第一种:(名称为test_laravel_nginx)
        build: ./build/docker/nginx
        image: test_laravel_nginx

    第二种:(名称为redis)
        image: redis:latest

修改容器名称

1、设置container_name的值
eg:(docker-compose.yaml文件中)
    container_name: test_laravel_php

nginx日志查看

php日志查看

strace使用

1、使用特权启动:(--privileged)
    在run的时候使用
        docker run -t -i --privileged container_name /bin/bash
    在docker-compose使用
        privileged: true

2、docker-compose中设置权限
    cap_add: 添加linux的部分功能
    cap_drop:删除linux的部分功能
    eg:
        在run的时候使用
            docker run -t -i --cap_add=ALL  --cap_drop=MKNOD container_name /bin/bash

        在docker-compose使用
            cap_add:
              - ALL

            cap_drop:
              - NET_ADMIN
              - SYS_ADMIN

如何跑crontab

1、安装crontab
2、在docker-entrypoint.sh中写入如下语句:
        service crond start
        crontab /data/htdocs/test_laravel/app/Console/crontab

nginx的容器如何安装软件

使用apt-get安装
eg:    
    1、apt-get update
    2、apt-get install vim
    3、apt-get install procps    (安装ps命令工具)

容器一启动就退出

1、查看日志(docker logs container_name)
2、/usr/sbin/sshd -D
3、如果可以启动,登录容器查看
4、查看容器信息(docker inspect container_name)

如何对外提供访问

端口映射
    1、宿主机解析域名
    2、设置端口映射
    3、访问宿主机指定端口
坚持原创技术分享,您的支持将鼓励我继续创作!