发布镜像到docker hub的流程

首先编写Dockerfile,并且build。

  1. 编写后需要先run起来。可以用docker-compose跑。
  2. 记录下当前container的id,用docker container commit <container ID> <docker.io用户名>/<Image 名>:<Tag 名>来暂存当前的容器为image。
  3. 给image打标签。docker [image] tag 本地镜像名[:tag] 远端镜像名[:tag] image可省略,tag也可省略。
  4. 再用docker push <docker.io用户名>/<Image 名>:<Tag 名>推镜像。

记得要登录docker。docker login -u 用户名 输入密码。

发布到阿里云容器镜像服务

  1. 登录阿里云,启用阿里云容器镜像服务。
  2. 创建命名空间,创建镜像仓库
  3. 在命令行登录到阿里云 docker login --username=<用户名> registry.cn-shenzhen.aliyuncs.com
  4. docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/skys215/brh1:[镜像版本号] 这里的ImageId是上面第3步给image打的标签
  5. docker push registry.cn-shenzhen.aliyuncs.com/skys215/brh1:[镜像版本号] 推到阿里云。

注意这里的registry.cn-shenzhen.aliyuncs.com是我选的区域,根据自己选择的区域不同,需要自行修改。

凌晨5点奇迹

  1. 每天制定一个经过深思熟虑的书面计划
  2. 自始至终以健康的生活习惯来保持最佳的热情和活力
  3. 通过确立短期目标来帮助自己实现最宏伟的人生目标
  4. 追踪进展,必要时进行调整,对自己的行为负责。
  5. 计划:行动之前先做好每天的计划安排
  6. 执行:花时间专注于最宏伟的目标,从而取得切实的进展
  7. 反思:每周一次,充分反思所做的事和接下来要做的事。

早起的好处:

  1. 有时间做好计划,并有效执行
  2. 完美的独处时间
  3. 持续高质量的睡眠状态
  4. 旺盛的经历和乐观的心态
  5. 强大的专注力
  6. 具有创造性的清晰思维 《自控力》
  7. 健康迷人的体魄
  8. 保持高效能
  9. 达成宏伟目标
  10. 加入成功人士的行列

行动计划1:

  1. 你眼中的早晨事什么样的呢?紧张而忙碌?缓慢而平和?富有成效还是跃跃欲试?
  2. 你的生活太过安逸了吗?有哪些习惯和倾向导致你无法成功?
  3. 早起带来的好吃中最令你心动的是哪个?究竟为什么要早起?你希望在凌晨5点有哪些收获?
  4. 找到一个晨型人为目标,向他学习,研究他的生活习惯和成就。
  5. 认真计划
  6. 少喝咖啡
  7. 重新安排晚间活动,尽量早点结束一天。列出目前的晚间活动,分析哪些可以重新安排,哪些可以减少,哪些可以放弃
  8. 按时睡觉。必要时设置作息分界点,到时间就收拾一切和工作相关的东西,关闭电脑手机电视ipad等。在纸上写下理想的晚间惯例
  9. 逐步改变作息时间,每天提前15分钟上床睡觉,适应之后再提前15分钟
  10. 培养健康习惯,早睡15分钟=早起15分钟, 利用这15分钟,做那些你喜欢但没法天天做的事,例如瑜伽。可以每周循环渐进进行。周一冥想日,周二跑步日等。

行动计划2:

  1. 建立有效的晚间惯例(包括比平时早睡),然后今晚就行动起来。
  2. 设置明早的闹钟,比平时提前15分钟起床。
  3. 用这15分钟培养一个新的习惯。

高效能7步法

  1. 确定人生的宏伟目标
  2. 建立季度体系。分解为季度目标,每个季度检查完成情况。
  3. 确定固有习惯及其补充习惯
  4. 打造理想的一周,理想的晨间和晚间惯例
  5. 实施立竿见影的高效能策略
  6. 利用有效工具追踪进展
  7. 实施进阶策略成为达人

个人优化方案(POP)

  • 最棒的自己看起来是什么样子的?
  • 你在做什么?
  • 你和谁在一起?
  • 你对什么事情充满热情并愿意付出努力?
  • 当一切进展顺利的时候你在做什么?

建立宏伟目标 tips:

  1. 你一直想做却从来没时间做的事情是什么?
  2. 完成后会让你感到无比自豪的事情是什么?
  3. 你想效仿成功人士的哪些成就?
  4. 你的个人优化方案是什么样的?
  5. 是什么令你想起来就害怕或者兴奋?
  6. 你曾经尝试过的单最终却未能完成的事情是什么?
  7. 如果不必为时间、金钱或精力担忧,你会尝试做什么?
  8. 如果有一个精灵能帮你实现愿望,你会许什么愿?
  9. 什么事情能带给你无与伦比的喜悦,而且一旦有了新进展,这份喜悦感还会随之增加?
  10. 你想到的而且应该列在清淡上的事情是什么?

行动计划3:

  1. 你是如何不断提升自己的?多久读一次非小说的书籍杂志或文章?多久参加一次会议、策划或其他个人体验活动来培养技能、性格以及其他有价值的特质?
  2. 创建POP
  3. 列出你的人生宏伟目标
    个人宏伟目标:

职业宏伟目标:
正在实施的重要目标:

《1年12周》 The 12 Week Year
如何建立季体系:

  1. 选择季度周期
  2. 清空日程表,给紧迫又重要的目标腾位置
  3. 筛选重要目标,专注于1个或两个目标
  4. 创建待办事项,尽可能详细
  5. 建立笔记
  6. 安排待办事项,一旦某个任务出现了,那么必须无条件完成
  7. 定期反思

行动计划4:

  1. 从宏伟目标中挑选两三个最重要的目标。这些目标就是你的当季目标。
  2. 清空日程表、任务列表中与新季度目标不一致的任务和项目
  3. 分析每个季度目标,将其分解为若干简单步骤。

3个核心固有习惯是,怀揣计划起床,坚持运动和投身工作
成功人士的习惯:

  1. 精神抖擞地早起
  2. 及时补充水分(起床后必喝水)
  3. 必要的独处(冥想、祷告、自我肯定)
  4. 注重早餐营养
  5. 专注个人成长
  6. 运动训练
  7. 提前做好计划

守住底线。设置必须要完成或开始的几个时间点,严格遵守。
行动计划5:

  1. 你认为有哪些无益健康活着效率低下的个人和职业习惯需要彻底改变?
  2. 把蓝图融入每天的行动之中,为达成当前的宏伟目标,列出你需要做到的每日习惯。
    目标1: 有助于达成该目标的每日习惯1:
  3. 确实实施关键的固有习惯及其补充习惯的时间,我应该怎么做才能保持习惯的养成?
    固有习惯1:早起 起床时间_____ 为了每天早上按时起床,我应该怎么做: 1. 2. 3.

由于我按时起床而产生的补充习惯(冥想、阅读等)1.2.3
固有习惯2: 运动 运动时间_____ 为了坚持运动应该怎么做 1.2.3
由于运动而产生的补充习惯(饮食改善,卫生健康等) 1.2.3
固有习惯3:投入工作 开始工作的时间_____ 为了每天早上按时工作,应该怎么做 1.2.3
由于我准备好开始工作而产生的补充习惯(注意力改善,精力提升等) 1.2.3

建立理想一周
IMG_4731.jpg

  1. 获取模板(https://www.jeffsanders.com/studio/)没看到模板下载
  2. 选择类型,规律和不规律
  3. 先放大石块,已经提前确定不可随意更改的活动、项目或任务,或者不能马上反悔的承诺
  4. 再倒小石子,通常没有时间限制的次要任务,日常运动,跑腿的差事,或不想错过的重要习惯。应该彻底填满时间表,要么添加相关活动,要么适当留出余地
  5. 每周反思

4种晨间惯例

  1. 无暇版。专门用于没有多余时间的日子,只做最低限度的事情让自己尽快起床出门,最好在1小时内完成。最好少用这种惯例,会增加压力,错过习惯的养成
  2. 标准版,作者的标准版晨间惯例需要2~3小时。给每天最重要的习惯留出足够时间。通常包括几分钟阅读,快速运动,吃早餐
  3. 安逸版,适合周末或非工作日,可以腾出时间运动冥想阅读散步写日记,或做任何最近错过的事情。作者的需要3~5小时,通常用它来进行长时间跑步训练或写新书
  4. 自定义,原本的计划被突如其来的事情打断时。例如出差,上班前看牙。

创建理想的晚间惯例

  1. 制定严格的时间上限来结束一天的工作,为睡眠做准备
  2. 检查日程表和任务列表中第二天的任务
  3. 收拾清理,包括房间内所有和工作相关的材料和个人物品
  4. 定好闹钟
  5. 睡前一小时关闭所有电子设备
  6. 阅读小说或听有声书,放松大脑
  7. 营造理想的睡眠环境,帮助自己尽快入睡
    将晨间惯例和宏伟目标关联起来

高效能策略

  1. 合并。
    合并任务、项目和活动。
    合并文档、文件和文件夹
    合并文章、笔记和心得
  2. 专注
    安排专注的时间段
    远离干扰
    一次只做一件事
  3. 零平衡。
    清零收件箱,清零任务列表,清零桌面,清零办公区

行动计划:

  1. 尽可能将人生目标、活动、项目和任何合并起来,集中在一个地方
  2. 什么时候你的效率最高?安排并遵守每天专注于宏伟目标的时间段(每个目标可能时间段不同,分别设置)
  3. 每天零平衡(时间可以不同)

每日反思:
写清楚具体的数字,每天在特定时间更新此表
日常习惯追踪表:
IMG_4732.jpg

把一周最终要的3个目标贴在能经常看到的地方。审视接下来几周所有的任务活动项目和承诺。
一周反思:
IMG_4733.jpg

反思日常习惯,一直坚持哪个,哪些合适,哪些容易放弃,什么造成无法坚持
为下个月制定3个最重要的目标,也可以是当前季度目标中的3个任务
反思下个月的所有任务,注意可能出现会打乱正常安排的活动
月度反思:
IMG_4734.jpg

确定下个季度的宏伟目标。季度的结束是休息放松或外出游玩的理想时机。
季度反思:
IMG_4735.jpg

去年坚持下来的习惯是什么,达成了哪些里程碑,实现了哪些宏伟目标,你现在的生活与去年比有哪些改善?
季度体系如何?是否需要修改为60天,或6个月?
回顾目标,重新开始
年度反思:
IMG_4736.jpg

《成为大人》Turning Pro
进阶策略:
安排思考时间,听音乐(Focus@Will),站立办公,倒立等

《最重要的事,只有一件》加里凯勒,Jay帕帕森
《精要主义》Greg 麦吉沃恩
GTD Davie Allen

日语IT用语(持续更新中)

(日/中)

  • 本番環境 线上环境/正式服
  • 構築 构建
  • 環境構築 搭建环境
  • 実装 实现(某个需求/功能)
  • インフラ構成図 架构图(Infrastructure)
  • 構成 组织/架构/构造
  • 冗長化 冗余化 redundantize(使系统冗余,以保持高可用)
  • 流す 跑一下 DBに流す 在数据库上跑一下
  • 要素 元素(HTML a, div, body等)
  • 擬似要素 伪类(CSS :link :active等)
  • URLに飛ぶ 跳转到URL
  • 仮登録 通常用于验证邮箱或手机号之前完成注册的状态
  • 発火 触发(イベントを発火させる 触发事件)
  • 動的 动态/在运行时
  • 付け外す 取消绑定
  • 困りごと 痛点
  • タスクばらし 细分任务
  • ブランチ切って 切换分支
  • プルリク Pull Request(PR)
  • バグを登録 记录BUG
  • 行動に落とし込む 以行动落实
  • 拡張機能 扩展/插件
  • APIキー再発行 重置API Key
  • 正規表現 正则表达式
  • 変数 变量
  • 定数 常量
  • while構文 while结构
  • 読み込む 加载、读取
  • コメントアウト 注释comment out
  • 反面教師 反面教材
  • 疎結合 louse coupling 低耦合
  • 密結合 高耦合
  • 引数 参数
  • 手戻り 返工
  • 踏み台サーバ 跳板机
  • 後方互換性 向后兼容性
  • ブラインドタッチ blind touch 盲打
  • リクエストを投げる 发请求
  • ページ遷移時 页面跳转时/转移时
  • ボタンを押下する 按下按钮
  • ポートをリッスン 监听端口
  • 紐付ける 关联/绑定
  • 設定反映 应用设定(apply settings)
  • 配列 数组
  • 出力 输出的内容
  • 仮想マシン 虚拟机
  • 糖衣構文 wrapper语法糖
  • NULL 許容 允许为NULL(的字段)
  • 同期 同步
  • データ構造 数据结构
  • 連想配列 关联数组
  • 埋め込み 填入(表单)/嵌入、引用(在页面中)
  • 紐付ける 关联(账号)
  • 紐付けを解除 解除关联(账号)
  • 連携 绑定/关联
  • 二段階認証/2要素認証 两步认证(2FA)
  • 共有 共享
  • 詳細 详情
  • 無効化 禁用(disable)
  • 有効化 启用(enable)
  • 非表示 隐藏(hide)
  • 利用規約 用户协议(Term of Service)
  • 端末 终端/设备
  • 役割/ロール 角色
  • 認可 权限
  • 演算子 操作符
  • 同期 同步
  • テストが合格する 通过测试
  • 依存 依赖
  • 即応性 响应式responsive
  • 組み込む 内置(例如,软件内置加密功能)
  • 既定 默认的
  • 既存 既有的/现存的
  • 再構築 重构
  • トラフィック(Traffic) 流量
  • 社内勉強会 公司内部分享会
  • 待ち行列/キュー 队列(Queue)
  • 並び替え 排序
  • ジョブ 任务
  • (非)活性化状態 (非)激活状态 (in)active

可以用以下形式表达(中/日)

  • 无效/过期 無効
  • toggle 表示切り替え
  • 隐藏/私有 非公開
  • 机制 メカニズム/仕組み

写测试前需要准备的东西

  1. 默认数据需要准备
    一些数据是需要提前准备的,例如角色数据、分类数据。

1.1 表结构
在使用Laravel的时候,需要注意要先创建表结构。
如果是用原生的Laravel搭建的系统还好,每个表结构都应该有对应的migration。
但是在诸如Voyager等CMS的时候,可能并不会创建migration文件。
此时需要使用例如laravel-migrations-generator的反向migrator生成器。他可以根据表结构生成migration文件。
用此类工具的时候需要注意:由于是以当前时间点表结构创建的migration,如果自己还有写一些migration,那么要注意冲突或者字段不存在的情况。
例如:我写了migration在user表的avatar字段后面添加status字段,但是用该扩展生成的migration文件里已经包含了status字段。如果再跑这个migration,就会报该字段已存在的错误。

1.2 初始数据
用seeder可以插入默认数据。我使用了orangehill/iseed这个扩展来生成初始数据。
这里要注意一点,由于它是根据表名的顺序来生成seeder的,如果使用了外键约束,那么在往前面的表插入数据的时候会报关联错误Integrity constraint violation。

  1. 分清楚要测试的模块、分清楚测试的先后顺序。
    订单都没有,也不可能测支付。
  2. 写清楚每个测试的步骤
    例如,先创建才能编辑/删除。

Laravel6 启动dusk时遇到JSON decoding of remote response failed

今天第一次使用Laravel Dusk来写UI测试。

按照文档安装好dusk,使用php artisan dusk尝试跑测试后,报了以下错误:

Facebook\WebDriver\Exception\WebDriverException: JSON decoding of remote response failed.
Error code: 4
The response: ''

搜索了一圈,在这个链接找到一个解决方法。需要先用./vendor/laravel/dusk/bin/chromedriver-mac-intel --port=9515这个命令启动chrome,再跑php artisan dusk才可以。(我用的是Intel版的mac,其他版本有对应的chrome driver)

我觉得很奇怪,dusk命令居然还要我手动启动chrome的吗?

后来试了一下关闭启动了的chromedriver,并在dusk命令前添加了sudo:sudo php artisan dusk
果然代码可以跑通了。

但我看chromedriver-mac-intel文件是-rwxr-xr-x,不应该启动不了啊?

在网上搜索了一圈,说要用php artisan dusk:chrome-driver --proxy=0.0.0.0:8888命令先安装chrome driver,但文件是存在的。太奇怪了。安装了之后,再跑php artisan dusk,现在报的错就不一样了:

Facebook\WebDriver\Exception\UnknownErrorException: unknown error: Chrome failed to start: exited abnormally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location ./vendor/laravel/dusk/bin/chromedriver-mac-intel is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

在网上搜索了第二圈,说安装了之后要重启才行。俗话说重启大法好,那我就重启看看吧。

重启之后果然就好了……