学习web架构师知识点

2021-05-22  本文已影响0人  前端蜗牛老师

1, npm whoami 是否登录
2, npm login 登录
3,npm config ls 查看镜像配置,上传时,不要指向淘宝镜像源
4,npm files 配置上传文件夹

5, npm install modules --save --loglevel verbose 安装依赖显示详细信息
6, vue add unit-jest 安装测试依赖

7,prePublishOnly: 'npm run lint && npm run test && npm run build' 执行发布之前,自动完成打包工作
8,rimraf './dist' 依赖包,删除文件夹的包

9,husky 工具 commit 提交之前检查代码质量

10,CI 持续集成 CD持续交付,持续部署
github action travis-ci

11,cat ~/.npmrc 获取npm token
language: node_js
node_js:

加密密钥
gem install travis
travis encrypt --pro 3w34 --add deploy.api_key, 在.travis.yml 同级目录上运行

git tag -a v1.1.1 -m '1.1.1' ,打标签
git push --tags // 推送标签

cookie session
JWT json web token
SSO oAuth2 单点登录,第三方鉴权

koa2 单元测试
jest mocha

聊聊架构

pm2
pm2 start xxx.js
pm2 restart <id/name>
pm2 reload
pm2 list
pm2 logs <id/name>
pm2 stop <id/name>
pm2 delete <id/name>
pm2 monit

nginx

nginx -s reload
nginx -s stop
nginx -t 测试
nginx -c xxx.conf,指定文件系统

use root;
worker_process auto;多进程

docker 虚拟机技术, 容器,启动快,占用资源少,体积小
docker-compose

vmware virturalbox

docker pull <image-name>:<tag>,下载镜像
docker images 查看镜像
docker rmi <image-id> 删除
docker push <username>/<repository>:<tag>
docker image prune 删除

docker ps 查看所有的容器 docker ps -a -a 隐藏文件
docker stop <container-id>
docker rm <con-id> -f 强制删除
docker logs <container-id> e 查看容器日志
docker exec -it <container-id> /bin/sh 进入容器控制台
docker inspect id 查看容器信息
docker stop (docker ps -aq) 停止所有服务 docker ps -aq 列出所有容器 docker rm(docker ps -aq) 删除所有容器
docker rmi $(docker images -q) 删除所有镜像

docker run -p 81:80 -v hostPath:containerPath -d --name nginx1 nginx
-p 端口映射
-v 数据卷,文件映射
-d 后台运行
--name 定义容器名称

echo hello docker hello world > index.html 覆盖信息

Dockerfile

FROM node:14 14 版本Tag
docker pull node:14
WORKDIR /app // 容器目录app工作目录
COPY . /app // copy所以文件到app目录下

// 构建镜像, 一般做一些系统配置,安装必备的软件,可有多个
RUN XXX
RUN npm install pm2 -g
...
启动容器,只能有一个CMD
CMD echo k1 && echok2 xxx npx pm2 log

要有阻塞控制台输入的程序 pnx pm2 log
可以打印出环境变量

//环境变量
ENV k1=v1
ENV k2=v2

docker 构建
docker build -t <name> . # . 指用Dockerfile文件构建
docker images

.dockerignore 忽略文件
容器里安装pm2 全局或者本地安装

docker-compose.yml文件
配置redis 配置mysql 配置mongodb

构建容器docker-compose build <service-name>
启动所有服务器docker-compose up -d,后台启动
停止所有服务docker-compose down
查看服务docker-compose ps

version: '3'
services:
editor-server: # service name
build:
context: . # 当前目录
dockerfile: Dockerfile # 基于 Dockerfile 构建
image: editor-server # 依赖于当前 Dockerfile 创建出来的镜像
container_name: editor-server
ports:
- 8081:3000 # 宿主机通过 8081 访问
editor-redis: # service name,重要!
image: redis # 引用官网 redis 镜像
container_name: editor-redis
ports:
# 宿主机,可以用 127.0.0.1:6378 即可连接容器中的数据库 redis-cli -h 127.0.0.1 -p 6378
# 但是,其他 docker 容器不能,因为此时 127.0.0.1 是 docker 容器本身,而不是宿主机
- 6378:6379
environment:
- TZ=Asia/Shanghai # 设置时区

链接mysql

version: '3'
services:
editor-server: # service name
build:
context: . # 当前目录
dockerfile: Dockerfile # 基于 Dockerfile 构建
image: editor-server # 依赖于当前 Dockerfile 创建出来的镜像
container_name: editor-server
ports:
- 8081:3000 # 宿主机通过 8081 访问
editor-redis: # service name,重要!
image: redis # 引用官网 redis 镜像
container_name: editor-redis
ports:
# 宿主机,可以用 127.0.0.1:6378 即可连接容器中的数据库 redis-cli -h 127.0.0.1 -p 6378
# 但是,其他 docker 容器不能,因为此时 127.0.0.1 是 docker 容器本身,而不是宿主机
- 6378:6379
environment:
- TZ=Asia/Shanghai # 设置时区

editor-mysql:
    image: mysql # 引用官网 mysql 镜像
    container_name: editor-mysql
    restart: always # 出错则重启
    privileged: true # 高权限,执行下面的 mysql/init
    command: --default-authentication-plugin=mysql_native_password # 远程访问
    ports:
        - 3305:3306 # 宿主机可以用 127.0.0.1:3305 即可连接容器中的数据库,和 redis 一样
    volumes:
        - .docker-volumes/mysql/log:/var/log/mysql  # 记录日志
        - .docker-volumes/mysql/data:/var/lib/mysql # 数据持久化
        - ./mysql/init:/docker-entrypoint-initdb.d/ # 初始化 sql
    environment:
        - MYSQL_DATABASE=imooc_lego_course # 初始化容器时创建数据库
        - MYSQL_ROOT_PASSWORD=Mysql_2019
        - TZ=Asia/Shanghai # 设置时区
editor-mongo:
    image: mongo # 引用官网 mongo 镜像
    container_name: editor-mongo
    restart: always
    volumes:
        - '.docker-volumes/mongo/data:/data/db' # 数据持久化
    environment:
        - MONGO_INITDB_DATABASE=imooc_lego_course
        - TZ=Asia/Shanghai # 设置时区
    ports:
        - '27016:27017' # 宿主机可以用 127.0.0.1:27016 即可连接容器中的数据库

配置测试机
配置work
adduser work
passwd work

whereis sudoers # 找到文件位置 /etc/sudoers

chmod u+w /etc/sudoers # 修改权限, u 表示所有者, w 表示写权限 + 表示添加

vim /etc/sudoers # 编辑该文件

找到 root ALL=(ALL) ALL

再加一行 work ALL=(ALL) ALL

chmod u-w /etc/sudoers

https://homework.imooc-lego.com/pages/GreedyCat/15-week15-%E7%AC%94%E8%AE%B0.html

删除<none>:<none>
docker 如何删除none镜像

删除none的镜像,要先删除镜像中的容器。要删除镜像中的容器,必须先停止容器!
停止容器

docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') 

1
删除容器

docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') 

1
删除镜像

docker rmi $(docker images | grep "none" | awk '{print $3}') 

接口设计

GraphQL Graph Query Language 图标查询语言, ,擅长处理图的数据结构的查询,多个数据对象,各个之间还有关联关系

进入容器内部

docker exec -it mysql bash

上一篇 下一篇

猜你喜欢

热点阅读