首页
留言
友情链接
壁纸
更多
关于
Search
1
dockerfile怎么执行shell脚本(利用tail -f /dev/null命令防止container启动后退出)
5,016 阅读
2
channel常见的异常总结
4,276 阅读
3
支付宝支付配置开发流程
1,431 阅读
4
HTTP 协议中的Content-Encoding
1,286 阅读
5
Laravel底层原理(二) —— 契约(Contracts)
950 阅读
PHP
composer
laravel
swoole
Docker
Linux
Go
随笔
mysql
nginx
Search
标签搜索
kratos
golang
微服务
gopher
PHP
Docker
dockerfile
通道
go
defer
alipay
支付
git
phpstorm
IDEA
web安全
漏洞
socket
设计原则
依赖注入
Royal
累计撰写
51
篇文章
累计收到
0
条评论
首页
栏目
PHP
composer
laravel
swoole
Docker
Linux
Go
随笔
mysql
nginx
页面
留言
友情链接
壁纸
关于
搜索到
51
篇与
Royal
的结果
延迟调用(defer)
Golang延迟调用:defer特性:关键字 defer 用于注册延迟调用。这些调用直到 return 前才被执。因此,可以用来做资源清理。多个defer语句,按先进后出的方式执行。defer语句中的变量,在defer声明时就决定了。defer用途:关闭文件句柄锁资源释放数据库连接释放go语言 defergo 语言的defer功能强大,对于资源管理非常方便,但是如果没用好,也会有陷阱。defer 是先进后出这个很自然,后面的语句会依赖前面的资源,因此如果先前面的资源先释放了,后面的语句就没法执行了。package main import "fmt" func main() { var whatever [5]struct{} for i := range whatever { defer fmt.Println(i) } }输出结果:432 10defer 与 returnpackage main import "fmt" func foo() (i int) { i = 0 defer func() { fmt.Println(i) }() return 2 } func main() { foo() }输出结果:2解释:在有具名返回值的函数中(这里具名返回值为 i),执行 return 2 的时候实际上已经将 i 的值重新赋值为 2。所以defer closure 输出结果为 2 而不是 1。
2021年04月25日
202 阅读
0 评论
0 点赞
new() 与 make() 的区别
new(T) 和 make(T,args) 是 Go 语言内建函数,用来分配内存,但适用的类型不同。new(T) 会为 T 类型的新值分配已置零的内存空间,并返回地址(指针),即类型为 *T 的值。换句话说就是,返回一个指针,该指针指向新分配的、类型为 T 的零值。适用于值类型,如数组、结构体等。make(T,args) 返回初始化之后的 T 类型的值,这个值并不是 T 类型的零值,也不是指针 *T,是经过初始化之后的 T 的引用。make() 只适用于 slice、map 和 channel.
2021年04月25日
602 阅读
0 评论
2 点赞
2021-04-23
channel常见的异常总结
chanelnil非空空的满了没满接收阻塞接收值阻塞接收值接收值发送阻塞接收值发送值阻塞发送值关闭panic关闭成功,读完数据后返回零值关闭成功,返回零值关闭成功,读完数据后返回零值关闭成功,读完数据后返回零值
2021年04月23日
4,276 阅读
0 评论
4 点赞
2021-04-22
dockerfile编写日记
基于Dockerfile构建镜像Dockerfile:source code for building Docker fileDocker可以通过从Dockerfile文件中读取指令自动构建镜像Dockerfile是一个文本文档,它包含用户可以在命令行上调用的所有命令来组装映像使用Docker build命令,用户可以通过逐条执行几条命令自动创建镜像
2021年04月22日
254 阅读
0 评论
0 点赞
2021-04-22
docker创建LNMP镜像,并部署CI框架项目
看了差不多一周多的dockerfile制作镜像,各种网上搜的教程或者视频,对于docker命令已经很熟练,但是其中的docker思想还是混混沌沌,本篇docker lnmp环境搭建和部署项目,是一遍一遍手巧摸索出来的,实际过程中我是把mysql单独拆分出来,独立制作了MYSQL镜像,然后启动容器,项目中数据库配置文件端口号和地址改下即可。1.拉取官方的centos:6.9作为基础镜像,docker pull centos:6.92.查看本机上的docker镜像,docker images3.进入镜像 docker run -it centos:6.9 /bin/bash4.安装源镜像 yum install -y epel-release 此处可能报错需要多试几次,跟网络环境有关5.安装PHP yum install -y php php-fpm php-mysql 6.查看php版本 php-fpm版本 php模块 php-vphp -fpm -v php -m7.安装Nginx yum install -y nginx8.配置PHP fastcgi配置Nginx以支持PHP,修改 /etc/nginx/conf.d/default.conf 如下:9.创建 /www 目录,并且修改用户和用户组为 apache (php-fpm默认运行用户和组为apache)mkdir /wwwchown apache:apache /wwwll / | grep www10.安装mysql yum install -y mysql mysql-server11.启动mysql /etc/init.d/mysqld start12.给mysql添加root用户并设置密码/usr/bin/mysqladmin -u root password '123456'/etc/init.d/mysqld stop13.编写启动容器自动启动命令(包含mysqld php-fpm nginx)14.然后向startup.sh写入如下内容:15.清理不再需要的数据以缩减镜像的尺寸,然后docker commit生成新镜像yum remove -y epel-releaseyum clean all16.退出容器(容器内是没办法执行docker命令)exit17.查看所有容器docker ps -a18.生成镜像docker commit dcd4f92bcc35 centos:lnmp219.查看镜像是否生成docker images20.测试镜像启动容器docker run -d -p 8849:80 -v /www:/www centos:lnmp /bin/startup.sh21.部署项目cd /wwwsudo rz CI.zipsudo unzip CI.zip22.访问http://192.168.0.198:8849/index.php
2021年04月22日
248 阅读
0 评论
1 点赞
1
...
9
10
11