Go type switches 详解

type switches type switches 比较的是类型而不是值,它在其他方面类似于表达式 switch。 它由一个特殊的 switch 表达式标记,该表达式具有使用保留字 type 而不是实际类型的类型

如何在一个 Docker 容器中支持多个数据库?

MySQL 镜像 init.sql: 1 2 3 4 CREATE USER 'drone'@'%' IDENTIFIED BY 'drone_123456'; GRANT ALL ON drone.* TO 'drone'@'%'; FLUSH privileges; CREATE DATABASE IF NOT EXISTS `drone`; docker-compose.yaml: 1 2 3 4 5 6 7 8 9 servicesmysql-server:image:mysql:5.7.23restart:always# command: --init-file /sql/init.sqlvolumes:-./mysql/data/:/var/lib/mysql-./mysql/logs:/logs-./init.sql:/docker-entrypoint-initdb.d/init.sql 可以用两种方式: volumes:/docker-entrypoint-initdb.d/init.sql 和 command: --init-file 探讨 为什么不在 mysql image 中直接给予支持

Docker 客户端(MySQL、Redis)工具

MySQL 通过 docker 来启动一个 MySQL client: 1 $ docker run -it --rm jbergknoff/mysql-client mysql -h 192.168.0.10 -p 3306 Redis 通过 docker 来启动一个 Redis client: 1 $ docker run -it --rm redis:4-alpine redis-cli -h 192.168.0.10 -p 6379 参考资料 https://hub.docker.com/r/jbergknoff/mysql-client/ 茶歇驿站 一个可以让你停下来看一看,在茶

基于 Docker 安装 phabricator

phabricator phabricator 是什么? Phabricator(发音像单词 fabricator)是一套网络应用程序, 目的在于使人们更容易构建软件,特别是在与团队一起工作

Go 语言的 time 包(简单)

time.ParseDuration 支持 -24.5h / 2h3m4s 等格式,非常的灵活。 1 2 3 4 5 pd, err := time.ParseDuration("2h3m4s") if err != nil { panic(err) } time.Now().Add(pd) time.Add 1 time.Now().Add(-24*time.Hour) time.Sub 1 time.Now().Sub(startTime) 。。。 茶歇驿站 一个可以让你停下来看一看,在茶歇之余给你帮助的小

推荐效率工具

Bash/git git icdiff git upr sourcetree Fork Gitup Mac tldr(simple man) brew install tldr BitBar Github notification … iOS Life Cycle RescueTime WakaTime stat coding time coding target VSCode Plugin Auto Close Tag – 自动关闭标签 Auto Import – 自动导入模块 Auto Rename Tag – 自动修改 HTML/JSX 对应关闭标签 Better Comments – 注释高

drone 的 secret 无法读取

drone 如何配置 secret 在 drone 控制面板中直接使用 Secrets 中添加。 但是这里默认只支持 PUSH TAG DEPLOYMENT drone client command 1 2 $ drone secret add --repository=yangwenmai/ratelimit --image=robertstettner/drone-codecov --event=pull_request --event=push --event=tag --name=codecov_token --value=xxx $ drone secret update --repository=yangwenmai/ratelimit --image=robertstettner/drone-codecov --event=pull_request --event=push --event=tag --name=codecov_token --value=yyy 参考资料 http://docs.drone.io/secrets-not-working/ https://discourse.drone.io/t/secrets-not-working-0-8-1⁄1101 https://discourse.drone.io/t/solved-secrets-not-available-to-drone-exec-local/270/3 http://docs.drone.io/cli-secret-add/ http://docs.drone.io/cli-secret-update/

在 Mac 电脑中 ssh 读取加载 config.d 目录

背景 一般情况下,我们ssh 配置都是使用 ~/.ssh/config 里面的配置即可。 但是如果我们线上所要维护或者要连接的机器比较多,我们怎么分门别类呢? 大家请看: 1 2 Include

浅析 Go 中的 defer channel close 的一些情况

背景 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 defer func() { fmt.Println("defer start...") if err := recover(); err != nil { fmt.Printf("err1:%v\n", err) } fmt.Println("defer end...") }() c := make(chan int) // var c chan int go func() { // defer func() { // if err := recover();