特色文章

Docker

sudo docker info # 查看 docker 是否正常

# docker run 创建容器. 
# options: 
#   -i: 保证容器的 stdin 是开启的
#   -t: 告诉 docker 为创建的容器分配一个伪 tty终端 
#   --name: 容器命名
#   -d: 后台运行容器
#   -log-driver: 后台运行容器时可以启动 log 驱动
sudo docker run <options> 

# 容器
hostname # 检查容器主机名
cat /etc/hosts # 检查 hosts 文件
ip a # 检查容器的接口
ps -aux # 检查容器进程

docker ps -a # 查看当前系统中容器列表,-a 会将运行的和停止的都列出

docker start xxx # 启动容器,xxx: 容器名称,容器ID
docker restart xxx # 重新启动 xxx 容器
docker attach # 重新附着到该容器的会话上
docker logs <options> # 获取容器 log. options: -f: 跟踪容器 log, -t: log 输出带有时间戳
docker top <container name> # 查看容器内进程
docker status # 显示 docker 统计信息
docker exec # 在容器内部运行进程
docker stop # 停止容器
docker inspect <container name> # 获取更多容器信息
docker rm <container name> # 删除容器

OKR

关于 OKR 的问题

  1. 什么是 OKR
  2. OKR 的规则
  3. 使用 OKR 的优势
  4. 制定 OKR 的注意点
  5. OKR 的工具
  6. 创建自己的 OKR

什么是 OKR

OKR(目标和关键结果),是一套明确跟踪目标及其完成情况的管理工具和方法。

关键字:明确,跟踪,目标,完成情况

OKR 的规则

一般组成:一个明确定义的目标3至5个关键结果

目标的定义:需要通过具体可以衡量的行动来实现的目标

关键结果:可以是 0-100% 或任何数字单位(美元,%,项目数)

OKR 的优势

  • OKR 有助于定义积极的目标
  • 进行基于目标的执行评估
  • 划定界限,缩短周期并不困难,可持续输入
  • 目标导向,对于实现的方式可以分为多种递进

制定 OKR 的注意点

  • O 应该是定性而不是定量,O 要鼓舞人心引起共鸣
  • KR 条数过多,KR 应该聚焦到决定成败的少数几个关键节点
  • KR质量差,KR 要是明确的,清晰的并且可以通过数字的变化反映出变化的
  • KR 需要里程碑类型以及指标任务类型
  • OKR 每天应该要有反馈,无论多少需要时动态实时变化的而非静止不动

OKR 管理工具

个人使用:Vis

创建自己的 OKR

开始创建的自己的 OKR 吧,自律让人生更自由 🫡

docker上启动nginx,并配置修改nginx的配置文件

1.使用docker 下载nginx 镜像  docker pull nginx

2.启动nginx

docker run –name nginx -p 80:80 -d nginx

这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令:

docker exec -it nginx bash

nginx.conf配置文件在 /etc/nginx/  下面,但是你使用vim nginx.conf 或者vi nginx.conf

会发现vi或者vim命令没有用,解决办法:apt-get  update  完成之后 apt-get install vim

此时你就可以自己定制nginx.con文件了,改好配置文件之后重启容器,步骤,先把容器停了

docker stop nginx  然后重启 docker start nginx

这样不是很方便,还有第二种方式,挂载配置文件,就是把装有docker宿主机上面的nginx.conf配置文件映射到启动的nginx容器里面,这需要你首先准备好nginx.con配置文件,如果你应经准备好了,下一步是启动nginx

命令:docker run –name nginx -p 80:80 -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx -v /home/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d nginx

解释下上面的命令:

–name  给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器

-p 映射端口,将docker宿主机的80端口和容器的80端口进行绑定

-v 挂载文件用的,第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,第二个表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面

第三个-v 表示的和第一个-v意思一样的。

-d 表示启动的是哪个镜像

Node 项目文件结构 V1.0

配置文件

tsconfig.json

{
    "compilerOptions": {
        "module": "commonjs",
        "esModuleInterop": true,
        "target": "es6",
        "noImplicitAny": true,
        "moduleResolution": "node",
        "sourceMap": true,
        "outDir": "dist",
        "baseUrl": ".",
        "paths": {
            "*": [
                "node_modules/*",
                "src/*"
            ],
        }
    },
    "include": [
        "src/**/*"
    ]
}

,env (环境变量)

tslint.json

{
    "defaultSeverity": "error",
    "extends": [
        "tslint:recommended"
    ],
    "jsRules": {},
    "rules": {
        "trailing-comma": [ false ]
    },
    "rulesDirectory": []
}

src (源代码)

  • api (路由文件)
  • config (配置文件,包括数据库)
  • middlewares (Express 中间件)
  • models (模型文件夹)
  • services (service 层)
  • types (ts type 层)
  • utils (工具函数)
  • databases.ts (数据库链接)
  • server.ts (express 入口文件)