• Docker搭建Sentry


    原文

    转载请注明出处

    简介

    sentry是一款错误日志收集平台,可以将代码错误信息进行收集。

    平常我们开发完成以后,发现问题的手段仅自测-》测试人员-》最后市场反馈。一般我们收到市场反馈的时候已经产生了事故,作为一个合格的程序猿,如果默默等着市场提问题肯定是不够滴!

    sentry就非常贴心的帮助我们收集了所有的错误异常(注意不是日志!)

    image

    还能点进这个异常查看原始代码(基本都能定位到代码的哪一行),这样我们就能主动发现问题,然后结合我们的日志,排查问题。是不是很优雅?

    image-1662539437940

    还能收集部份其他信息!我这里是springboot的服务,只记录了java的平台版本。像Android和IOS这种还能收集到当前手机型号、版本、分辨率等信息。千万别小看这些信息,像移动端这种客户端的日志,如果客户不主动上报,就需要一套非常完善的日志系统。

    非常优雅有木有?

    而且支持的平台非常的多,基本涵盖了所有语言和平台。
    image-1662540125114
    image-1662540184135

    安装Sentry

    安装Docker以及相关依赖

    sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
    • 1

    注:安装过程如果特别慢,请稍安勿躁;也可以切换为国内源进行安装。

    启动Docker后台服务

    systemctl start docker
    
    • 1

    测试运行

    docker run hello-world
    
    • 1

    设置开机启动

    systemctl enable docker
    
    • 1

    查看一下docker和docker compose的版本,以验证是否安装成功

    查看Docker版本

    docker --version
    
    • 1

    查看Docker compose版本

    docker compose version
    
    • 1

    安装git

    yum install git
    
    • 1

    下载onpremise

    官方制作的自动化安装脚本,sentry组件非常多,如下图所示。所以不要想自己一个个去装,能要你命

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kGIMBiDM-1690871726057)(https://jjput-halo.oss-cn-guangzhou.aliyuncs.com/markdownimage-20220908192634470.png)]

    git clone https://github.com/getsentry/onpremise.git
    这个是旧的
    git https://github.com/getsentry/self-hosted.git
    这个是新仓库
    两个地址可以拉取,网上大多数都是旧的,后面估计仓库迁移了,但旧的也能用。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    安装sentry

    安装的过程中会下载很多docker镜像,能否成功就看这一步了~

    cd onpremise
    ./install.sh
    
    • 1
    • 2

    安装过程中,如果出现错误,本地会有日志,可以看下。

    出现超时情况,可以多次重试./install.sh命令来尝试解决,如果一直不行的话,可以看下我后面的问题总结。

    安装快结束的时候会提示你是否现在注册账户,我这里选择是(输入y),接着输入对应信息即可。

    image-20220907170713783

    启动

    docker compose up -d
    
    • 1

    image-1665220452798

    可以看到启动的服务贼多…
    注意一定得在onpremise文件目录下执行

    打开浏览器输入IP地址+端口号9000就可以访问Sentry登录界面了。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T3fsrqNK-1690871726057)(https://jjput-halo.oss-cn-guangzhou.aliyuncs.com/markdownimage-20220908182443616.png)]

    邮箱配置

    mail配置

    进入onpremise/sentry目录下,编辑config.yml

    image-20220908185344173

    着重讲解一下几个配置项

    • mail.host:邮件服务域名
    • mail.port:587
    • mail.username:邮箱登录名
    • mail.use-tls&ssl:我这里都是false,实际应该是true对应587,但我测试下来是能成功发送的。
    • mail.password:不是邮箱登录密码,是邮箱给的IMAP/SMTP服务密码
    • mail.from:与mail.username要一致

    域名配置

    域名配置

    system.url-prefix: 'https://sentry.xxx.com/'
    system.internal-url-prefix: 'https://sentry.xxx.com/'
    
    • 1
    • 2

    这里配置的主要影响我们邮件发送出去后,点击跳转的访问地址。

    不配置的话默认使用当前部署的外网ip+9000端口

    重新部署

    先进入到之前下载的onpremise目录下

    改好配置以后,执行命令将原来的容器都移除

    docker compose down
    
    • 1

    不用担心数据会没,sentry默认是用文件存储数据,都存在本地,所以不用担心。

    重新运行并启动

    docker compose up -d
    
    • 1

    验证并测试

    启动成功后,登入并进入管理

    image-20220908191412634

    选择mail,可以看到邮箱配置已生效,点击发送测试邮件进行测试~

    img

    常见问题

    安装

    报错1

    ▶ Parsing command line ...
    
    ▶ Detecting Docker platform
    Detected Docker platform is linux/amd64
    
    ▶ Initializing Docker Compose ...
    
    ▶ Setting up error handling ...
    
    ▶ Checking for latest commit ... 
    
    ▶ Checking minimum requirements ...
    Found Docker version 20.10.17
    Found Docker Compose version 1.25.0
    Unable to find image 'busybox:latest' locally
    latest: Pulling from library/busybox
    2c39bef88607: Pulling fs layer
    2c39bef88607: Verifying Checksum
    2c39bef88607: Download complete
    2c39bef88607: Pull complete
    Digest: sha256:20142e89dab967c01765b0aea3be4cec3a5957cc330f061e5503ef6168ae6613
    Status: Downloaded newer image for busybox:latest
    WARN: Recommended minimum CPU cores available to Docker is 4, found 2
    WARN: Recommended minimum RAM available to Docker is 7800 MB, found 7678 MB
    
    ▶ Turning things off ...
    Define and run multi-container applications with Docker.
    
    Usage:
      docker-compose [-f ...] [options] [COMMAND] [ARGS...]
      docker-compose -h|--help
    
    Options:
      -f, --file FILE             Specify an alternate compose file
                                  (default: docker-compose.yml)
      -p, --project-name NAME     Specify an alternate project name
                                  (default: directory name)
      --verbose                   Show more output
      --log-level LEVEL           Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
      --no-ansi                   Do not print ANSI control characters
      -v, --version               Print version and exit
      -H, --host HOST             Daemon socket to connect to
    
      --tls                       Use TLS; implied by --tlsverify
      --tlscacert CA_PATH         Trust certs signed only by this CA
      --tlscert CLIENT_CERT_PATH  Path to TLS certificate file
      --tlskey TLS_KEY_PATH       Path to TLS key file
      --tlsverify                 Use TLS and verify the remote
      --skip-hostname-check       Don't check the daemon's hostname against the
                                  name specified in the client certificate
      --project-directory PATH    Specify an alternate working directory
                                  (default: the path of the Compose file)
      --compatibility             If set, Compose will attempt to convert keys
                                  in v3 files to their non-Swarm equivalent
      --env-file PATH             Specify an alternate environment file
    
    Commands:
      build              Build or rebuild services
      bundle             Generate a Docker bundle from the Compose file
      config             Validate and view the Compose file
      create             Create services
      down               Stop and remove containers, networks, images, and volumes
      events             Receive real time events from containers
      exec               Execute a command in a running container
      help               Get help on a command
      images             List images
      kill               Kill containers
      logs               View output from containers
      pause              Pause services
      port               Print the public port for a port binding
      ps                 List containers
      pull               Pull service images
      push               Push service images
      restart            Restart services
      rm                 Remove stopped containers
      run                Run a one-off command
      scale              Set number of containers for a service
      start              Start services
      stop               Stop services
      top                Display the running processes
      unpause            Unpause services
      up                 Create and start containers
      version            Show the Docker-Compose version information
    An error occurred, caught SIGERR on line 8
    Cleaning up...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85

    大概率是你的docker-compose版本不对,可以更新到最新版本后再尝试。

    我做的过程中也遇到很多问题,装了好多次才成功。问题五花八门~,就不一一列出来,大概讲下排错思路。

    网络问题

    这个是以前最经常遇到的,什么github 443 timout,docker连接超时。

    阿里云最近好像对这块都打通了(去年的时候还是各种超时),速度还挺快的。

    如果你也是阿里云,遇到超时,不妨多试试~。

    其他的云服务商,docker相关的都可以通过配置国内镜像源解决,但我不确定国内源都有同步所有docker仓库数据,不然又遇到奇奇怪怪的问题。

    github相关的,我有看到是配置host解析的ip,亲测是有效的。

    异常无法上报

    我遇到是配置了https,然后异常上报但sentry平台未接收到,后面配置了SSL证书后才成功上报的~
    所以要注意如果选择了https,nginx一定要配置ssl证书!!

    邮箱配置

    [Errno 101] Network is unreachable

    大概率是mail.host mail.port配置有误

    (501, b’Mail from address must be same as authorization user.', ‘sentry@localhost’)

    大概率是你密码用了邮箱登录密码,要使用生成的授权码~# 简介

    sentry是一款错误日志收集平台,可以将代码错误信息进行收集。

    平常我们开发完成以后,发现问题的手段仅自测-》测试人员-》最后市场反馈。一般我们收到市场反馈的时候已经产生了事故,作为一个合格的程序猿,如果默默等着市场提问题肯定是不够滴!

    sentry就非常贴心的帮助我们收集了所有的错误异常(注意不是日志!)

    image

    还能点进这个异常查看原始代码(基本都能定位到代码的哪一行),这样我们就能主动发现问题,然后结合我们的日志,排查问题。是不是很优雅?

    image-1662539437940

    还能收集部份其他信息!我这里是springboot的服务,只记录了java的平台版本。像Android和IOS这种还能收集到当前手机型号、版本、分辨率等信息。千万别小看这些信息,像移动端这种客户端的日志,如果客户不主动上报,就需要一套非常完善的日志系统。

    非常优雅有木有?

    而且支持的平台非常的多,基本涵盖了所有语言和平台。
    image-1662540125114
    image-1662540184135

    安装Sentry

    安装Docker以及相关依赖

    sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
    
    • 1

    注:安装过程如果特别慢,请稍安勿躁;也可以切换为国内源进行安装。

    启动Docker后台服务

    systemctl start docker
    
    • 1

    测试运行

    docker run hello-world
    
    • 1

    设置开机启动

    systemctl enable docker
    
    • 1

    查看一下docker和docker compose的版本,以验证是否安装成功

    查看Docker版本

    docker --version
    
    • 1

    查看Docker compose版本

    docker compose version
    
    • 1

    安装git

    yum install git
    
    • 1

    下载onpremise

    官方制作的自动化安装脚本,sentry组件非常多,如下图所示。所以不要想自己一个个去装,能要你命

    image-20220908192634470

    git clone https://github.com/getsentry/onpremise.git
    这个是旧的
    git https://github.com/getsentry/self-hosted.git
    这个是新仓库
    两个地址可以拉取,网上大多数都是旧的,后面估计仓库迁移了,但旧的也能用。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    安装sentry

    安装的过程中会下载很多docker镜像,能否成功就看这一步了~

    cd onpremise
    ./install.sh
    
    • 1
    • 2

    安装过程中,如果出现错误,本地会有日志,可以看下。

    出现超时情况,可以多次重试./install.sh命令来尝试解决,如果一直不行的话,可以看下我后面的问题总结。

    安装快结束的时候会提示你是否现在注册账户,我这里选择是(输入y),接着输入对应信息即可。

    image-20220907170713783

    启动

    docker compose up -d
    
    • 1

    image-1665220452798

    可以看到启动的服务贼多…
    注意一定得在onpremise文件目录下执行

    打开浏览器输入IP地址+端口号9000就可以访问Sentry登录界面了。

    image-20220908182443616

    邮箱配置

    mail配置

    进入onpremise/sentry目录下,编辑config.yml

    image-20220908185344173

    着重讲解一下几个配置项

    • mail.host:邮件服务域名
    • mail.port:587
    • mail.username:邮箱登录名
    • mail.use-tls&ssl:我这里都是false,实际应该是true对应587,但我测试下来是能成功发送的。
    • mail.password:不是邮箱登录密码,是邮箱给的IMAP/SMTP服务密码
    • mail.from:与mail.username要一致

    域名配置

    域名配置

    system.url-prefix: 'https://sentry.xxx.com/'
    system.internal-url-prefix: 'https://sentry.xxx.com/'
    
    • 1
    • 2

    这里配置的主要影响我们邮件发送出去后,点击跳转的访问地址。

    不配置的话默认使用当前部署的外网ip+9000端口

    重新部署

    先进入到之前下载的onpremise目录下

    改好配置以后,执行命令将原来的容器都移除

    docker compose down
    
    • 1

    不用担心数据会没,sentry默认是用文件存储数据,都存在本地,所以不用担心。

    重新运行并启动

    docker compose up -d
    
    • 1

    验证并测试

    启动成功后,登入并进入管理

    image-20220908191412634

    选择mail,可以看到邮箱配置已生效,点击发送测试邮件进行测试~

    img

    HTTPS配置

    基本配置

    看了下网上的文章,大概就是修改onpremise目录下的nginx/nginx.conf,即可完成https配置:

    ...
    http {
    	...
        server {
              listen 80;
              ## 新增配置
              listen 443 ssl;
              ssl_certificate      9685043__xx.pem;
              ssl_certificate_key  9685043__xx.key;
    
              ssl_session_timeout 5m;
              ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
              ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
              ssl_prefer_server_ciphers on;
              ## 新增配置 end
    
    
              location /api/store/ {
                  proxy_pass http://relay;
              }
              location ~ ^/api/[1-9]\d*/ {
                  proxy_pass http://relay;
              }
              location / {
                  proxy_pass http://sentry;
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    .pem和.key文件也是放到onpremise/nginx/目录下即可,会自动将文件copy到容器中。
    随后重新部署但问题来了,但重启后并不能正确访问。
    docker ps查看了下发现sentry-nginx还是监听80端口,尝试修改onpremise/docker-compose.yml中的nginx配置

    image-1682126919305

    将80改为443。

    再次重新部署,发现还是不行。。。

    仔细思考一番,docker ps查看,sentry-nginx监听着443端口,没有问题,lsof查看一下本机的80和443端口,发现并未有服务使用80或443,也就是说sentry-nginx并没有监听本机的80和443。。。

    于是我将配置恢复至一开始的状态

    • sentry-nginx配置恢复
    • docker-compose.yml端口恢复成80

    再在物理机上安装nginx,并配置如下:

    user nginx;
    worker_processes auto;
    
    error_log /var/log/nginx/error.log warn;
    pid /run/nginx.pid;
    
    
    events {
        worker_connections 1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
    
        upstream relay {
            server localhost:3000;
        }
    
        upstream sentry {
            server localhost:9000;
        }
        server {
            listen 80;
    
            location /api/store/ {
                proxy_pass http://relay;
            }
            location ~ ^/api/[1-9]\d*/ {
                proxy_pass http://relay;
            }
            location / {
                proxy_pass http://sentry;
            }
        }
    
        server {
            listen 443 ssl;
            server_name  你的域名;
            ssl_certificate      你的ssl证书.pem;
            ssl_certificate_key  你的ssl证书.key;
            
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
            ssl_prefer_server_ciphers on;
     
            location / {
                proxy_pass http://localhost:9000;
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68

    这份配置我是多次尝试,最终才ok的,这里要注意的是443这边的

    location / {
                proxy_pass http://localhost:9000;
    }
    
    • 1
    • 2
    • 3

    原来我也是抄80的配置,但配置完后,web能正常访问,但异常不能正常上报,或者说sentry没有收到上报,多番研究后,发现网上有部分文章是直接写死localhost:9000,结果一试,居然真的可以。。😭😭😭

    清理数据

    手动清理

    docker system df -v
    
    • 1

    可以通过以上命令,看到占用最大的一般是sentry-postgres

    image-1676279976165

    我这边直接占用了170G,也是恐怖。

    通过docker ps查看所有容器

    image-20230216164231488

    可以看到sentry-self-hosted-postgres-1服务

    我们进入容器中

    sudo docker exec -it sentry-self-hosted-postgres-1 /bin/bash
    
    • 1

    登录postgres数据库

    psql postgres postgres
    
    • 1

    具体的账户名与密码在/senty/sentry.conf.example.py文件中有说明。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xCXUA7cs-1690871726059)(/Users/junj/Library/Application Support/typora-user-images/image-20230216164642327.png)]

    数据库如何清理可以查看这篇文章

    我把整理后的命令放下面了,重点主要就是nodestore_node表,字段就3个id、内容、时间

    //查看表大小
    select pg_size_pretty(pg_relation_size('nodestore_node'));
    
    //删除一周前的数据,删除不会直接释放磁盘,这里的删除你可以理解为假删,只是做了个标记;1 week是一周,根据你需求修改
    DELETE FROM nodestore_node WHERE timestamp < (now() - interval '1 week');
    
    //清理并释放磁盘空间,真正的删了
    VACUUM FULL public.nodestore_node;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    官方指导

    清理完后,一下清理了几百G。。。

    image-20230217170342797

    这里必须吐槽一下,执行VACUUM居然还要占用磁盘空间来清理磁盘空间,所以磁盘不够还不能释放…真是醉了

    自动清理

    通过crontab -e添加定时任务如下:

    0 0 * * * docker exec -it sentry-self-hosted-sentry-cleanup-1 sentry cleanup --days 14 && docker exec -it sentry-self-hosted-postgres-1 vacuumdb -U postgres -d postgres -v -f --analyze
    
    • 1

    常见问题

    安装

    报错1

    ▶ Parsing command line ...
    
    ▶ Detecting Docker platform
    Detected Docker platform is linux/amd64
    
    ▶ Initializing Docker Compose ...
    
    ▶ Setting up error handling ...
    
    ▶ Checking for latest commit ... 
    
    ▶ Checking minimum requirements ...
    Found Docker version 20.10.17
    Found Docker Compose version 1.25.0
    Unable to find image 'busybox:latest' locally
    latest: Pulling from library/busybox
    2c39bef88607: Pulling fs layer
    2c39bef88607: Verifying Checksum
    2c39bef88607: Download complete
    2c39bef88607: Pull complete
    Digest: sha256:20142e89dab967c01765b0aea3be4cec3a5957cc330f061e5503ef6168ae6613
    Status: Downloaded newer image for busybox:latest
    WARN: Recommended minimum CPU cores available to Docker is 4, found 2
    WARN: Recommended minimum RAM available to Docker is 7800 MB, found 7678 MB
    
    ▶ Turning things off ...
    Define and run multi-container applications with Docker.
    
    Usage:
      docker-compose [-f ...] [options] [COMMAND] [ARGS...]
      docker-compose -h|--help
    
    Options:
      -f, --file FILE             Specify an alternate compose file
                                  (default: docker-compose.yml)
      -p, --project-name NAME     Specify an alternate project name
                                  (default: directory name)
      --verbose                   Show more output
      --log-level LEVEL           Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
      --no-ansi                   Do not print ANSI control characters
      -v, --version               Print version and exit
      -H, --host HOST             Daemon socket to connect to
    
      --tls                       Use TLS; implied by --tlsverify
      --tlscacert CA_PATH         Trust certs signed only by this CA
      --tlscert CLIENT_CERT_PATH  Path to TLS certificate file
      --tlskey TLS_KEY_PATH       Path to TLS key file
      --tlsverify                 Use TLS and verify the remote
      --skip-hostname-check       Don't check the daemon's hostname against the
                                  name specified in the client certificate
      --project-directory PATH    Specify an alternate working directory
                                  (default: the path of the Compose file)
      --compatibility             If set, Compose will attempt to convert keys
                                  in v3 files to their non-Swarm equivalent
      --env-file PATH             Specify an alternate environment file
    
    Commands:
      build              Build or rebuild services
      bundle             Generate a Docker bundle from the Compose file
      config             Validate and view the Compose file
      create             Create services
      down               Stop and remove containers, networks, images, and volumes
      events             Receive real time events from containers
      exec               Execute a command in a running container
      help               Get help on a command
      images             List images
      kill               Kill containers
      logs               View output from containers
      pause              Pause services
      port               Print the public port for a port binding
      ps                 List containers
      pull               Pull service images
      push               Push service images
      restart            Restart services
      rm                 Remove stopped containers
      run                Run a one-off command
      scale              Set number of containers for a service
      start              Start services
      stop               Stop services
      top                Display the running processes
      unpause            Unpause services
      up                 Create and start containers
      version            Show the Docker-Compose version information
    An error occurred, caught SIGERR on line 8
    Cleaning up...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85

    大概率是你的docker-compose版本不对,可以更新到最新版本后再尝试。

    我做的过程中也遇到很多问题,装了好多次才成功。问题五花八门~,就不一一列出来,大概讲下排错思路。

    网络问题

    这个是以前最经常遇到的,什么github 443 timout,docker连接超时。

    阿里云最近好像对这块都打通了(去年的时候还是各种超时),速度还挺快的。

    如果你也是阿里云,遇到超时,不妨多试试~。

    其他的云服务商,docker相关的都可以通过配置国内镜像源解决,但我不确定国内源都有同步所有docker仓库数据,不然又遇到奇奇怪怪的问题。

    github相关的,我有看到是配置host解析的ip,亲测是有效的。

    异常无法上报

    我遇到是配置了https,然后异常上报但sentry平台未接收到,后面配置了SSL证书后才成功上报的~
    所以要注意如果选择了https,nginx一定要配置ssl证书!!

    邮箱配置

    [Errno 101] Network is unreachable

    大概率是mail.host mail.port配置有误

    (501, b’Mail from address must be same as authorization user.', ‘sentry@localhost’)

    大概率是你密码用了邮箱登录密码,要使用生成的授权码~

  • 相关阅读:
    JAVA学习-三元操作符if-else
    CSS 创建
    vue工程化vue-cli创建项目以及图形创建vue项目
    这一次,Python 真的有望告别 GIL 锁了?
    RabbitMQ—六种模型与Exchange类型
    简单好用的个人图书管理系统;开源啦!北大NLP新手教程;『Rust命令行编程指南』随书代码;源代码结构可视化工具 | ShowMeAI资讯日报
    【达梦数据库】数据库的方言问题导致的启动失败
    分布式文件系统--MinIO
    .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
    机器学习(新手入门)-线性回归 #房价预测
  • 原文地址:https://blog.csdn.net/qq_35323561/article/details/126783063