作者归档:白宦成

关于白宦成

独立开发者, 自由职业者, 写作者

如何 Docker 化一个 Cli 工具

需求

我在看 Hexo 的 issue 时,看到了一个需求

Docker image to avoid the environment setting issue.

刚好,我自己有 Docker 的基础,就决定提交一个 PR ,解决这个问题。

核心实现

在开发这一部分的时候,一个最核心的问题是,你需要准备 2 个文件,一个是 DockerFile ,另一个是对应的 Bash Script。

原因在于

  • Docker File 用于打包基础环境,比如全局安装 Hexo
  • Bash Script 则是为了方便挂载本地的文件系统,开辟端口等(端口可以放在 Docker file 中,文件系统必须要现场挂载,因为你的目的是使用 Cli 管理本地文件,就一定要把文件挂载过去)

具体实现的思路是,Docker 镜像本身提供的是基础环境,将 CMD 设置为 Bash ,方便执行具体的命令。

而 Bash Script 则将需要执行的命令整体传递过去。

代码

Docker File

FROM node:10
RUN npm install -g hexo-cli
CMD ["/bin/bash"]
Code language: CSS (css)

Bash Script

#!/bin/sh
docker run \
  --interactive --tty --rm \
  --volume "$PWD":/hexosite \
  --workdir /hexosite \
  -p 4000:4000 \
  bestony/hexojs:latest "$@"

Code language: JavaScript (javascript)

总结

Docker 化 Cli 命令其实并不复杂,核心在于 CMD 与你的 Bash Script 的配合。

其他

你可以查看 https://github.com/hexojs/hexo/pull/3891 来学习到更多的内容。

“总是”这个功能为谁而设计?

在一些场景中,我们会看到,允许用户输入“总是”这个功能,来简化一些操作。

那么在你看来,这个功能是为谁而设计的呢?

有的人认为,总是这个功能是留给开发者的指引,让开发者可以做静默授权。

有的人认为,总是这个功能用于简化用户端的体验,让用户对于一些经常进行操作的场景,使用一贯的配置,降低使用的成本。

你如何认为呢?

规则与效率

最赚钱的方法都写在刑法里。

而传播最快的方式都写在微信的平台运营规范里。

如果我们想要推广产品,都有哪些方法?

  1. 研究规则,寻找漏洞。
  2. 查看规则更加严密的平台,将其他平台内封死的规则,拿到宽松平台来用。

举个例子,将微信中封禁的规则,放在微博中用。

警惕“No Time To Think”

在上一家公司的时候,工作很多,但是相对来说,工作的压力却并不是很重,你需要做的是把一件事做好,做到极致

到了新的公司、新的岗位以后,收入有了提升,但是却发现自己没有太多的时间去思考,多个项目不停的在 Push 你向前推进,工作的压力一轮接着一轮的前来,让你不得不向前奔跑。

这带来的后果是,每天都需要花费大量的时间去处理各种各样的人、事、物,渐渐的,失去了思考的时间。

失去思考时间代价是,没有办法更好的去优化自己的工作、自己的业务、自己的时间。最终失去一切。

必须警惕工作消耗掉你的所有时间,将你自己的一部分时间投放在重要但不紧急的事情上。

MacBook Pro 16 寸体验

因为之前用的 MacBook Pro 13寸用了已经很久,再加上只有 8GB 内存,所以决定,在今年买一台新的 MacBook Pro。

刚好,有朋友的朋友在 Apple 工作,便借他的名额,以 85 折买到了新款的 MBP。

出于键盘的考虑,我选择了新款的 16 寸,而不是13寸(虽然我觉得 13 寸其实更好,方便带着出差)。

在辛辛苦苦等待了一周以后,终于,我的 MBP 到了。

相比于 13 寸的 MBP ,16 寸的 MBP 的视野放大的不少,因而网页的内容也可以展示更多,可以更加方便的浏览网页。

键盘方面,也的确好了很多,相比于蝴蝶键盘,敲起来还是非常舒服的,至少手指不会疼痛。

总体来说,非常棒,唯一的问题是,接下来的一年,要努力还信用卡啦!

精英治理不适用于所有的社区

我目前参与的一个社区,走的是精英治理的路子。但是在运行过程中,遇见不少问题,这也让我在思考,精英治理的适用条件。

精英治理并不适用于所有社区的发展阶段,实际上,精英治理应当是有一定的条件限制的,比如:

  1. 精英治理应当有一定的社区人数基础的,实际上,如果你只有数十人的小社区,不用精英治理反而可能更好。
  2. 精英治理者应当有足够多的精力和时间投入到社区的治理当中去,不然只会让整个社区的权力分散,让事情进展缓慢。

扼杀创造力的,是大公司内部的权责清晰

我上一家公司是在朋友的初创公司,虽然薪水不能算是最高的,但也不算亏待。而且因为老板比较熟悉,团队比较小,所以也还算自在,如果你想做什么,那就去做什么,比较好。

如今的工作,是在腾讯,知名的公仔厂。大公司的典型特点就是职责分明,你只能做你能做的事情,不能做所不能允许的事情。

此外,大公司因为经常会有一些内部的沟通被互相坑,使得一些老人在跨部门合作的时候,会优先考虑可能被坑。

这种习惯对于社区成长起来的我来说,是一种束缚。我不能因为喜爱一个产品而去为了一个产品做想做的事情。我也不能因为喜欢一个产品,而去说我想说的话,这种限制,让我觉得,还不如出去的好。

「iPad Pro 生产力指南 2.0」书摘

“事实类的内容,比如某公司发布了一个新产品,你扫过一眼,了解即可;而观点类的内容,重点关注其立场和论据;故事类的内容最难处理,我的建议是只花精力看自己感兴趣的,其他领域的故事还是略过吧。”

“事实类的内容,比如某公司发布了一个新产品,你扫过一眼,了解即可;而观点类的内容,重点关注其立场和论据;故事类的内容最难处理,我的建议是只花精力看自己感兴趣的,其他领域的故事还是略过吧。”

“是否可以作为 Dailyio 会员通讯的选题?
是否可以添加到 DailyMe 每日阅读列表?
是否作为团队头脑风暴的内容?
是否可以成为长期关注的话题?
是否马上就可以完成?”

“对于不满足上述要求的内容,一定要大胆、果断地删掉或关闭网页,你必须相信,互联网是一个巨大的内容仓库,当你有明确的需求,从而知道需要什么内容时,你一定会找得到,而在需求明确之前,不要收藏。”

“摘录:好的句子、观点以及某些超链接;
想法:自己对于工作、生活的灵感与思考;
随手记:某个待办事项;
项目记录:某个长期项目的变化与跟进;”

2019 年 9/10 月月度总结

TLDR

这两个月,可能是数年来,对我影响最大的两个月了。在这两个月里,我父亲因病去世了。我帮父亲料理完后事,投入到腾讯的工作里。

月度总结

工作

9 月

9 月因为父亲生病的缘故,仅在第一周完成了腾讯的入职;从第二周开始就回家看护。几乎未完成任何工作。

10 月

10月份的工作是繁忙的,十一假期基本上是在家度过的,随后请了三天丧假,在11号回到了深圳,一边担心母亲的身体,一边工作。

生活

9 月

9月几乎就是在医院度过的,从 9 月 9 日赶回家,一直到 9 月 27 日父亲去世,送父亲回老家,没有一天是正常的生活的。

10 月

10月份是忙碌的一个月,连续两次出差到北京。生活节奏多次被打乱。,再加上十一假期的时间和丧假,这个月在深圳呆的时间倒是不多。

Side Project

9 月

9 月无进度。

10 月

10月无进度

写作

9月看护期间,会在「程序员指北」公众号上更新一些短篇内容(300字左右),是一些开源方面的评论。最近也开始在知乎上回答一些和开源相关的问题。

10 月也是简单的在 「程序员指北」 公众号上更新一些短篇的内容。对于这个号来说,可能更多还是写短篇吧,偏个人心得的记录,不一定要多么正经,容易坚持不下去,偶尔想写了,再写深度长文。

财务状况

vjvd8

其他

  • 10 月初,和刚刚结婚的同学董剑剑见了面,作为高中班级第一个结婚的人,不得不感叹他的人生和我们已经走在不同的阶段了。他已经是走入下一个阶段了。

年度对标

读书

  • 从零开始做抖音:策划、制作、运营、涨粉基础教程

旅行

  • 10月份因公前往北京 2 次

电影/电视剧

课程学习

感叹

父亲去世对于我来说,感情层面倒还好,因为我常年在外,而且一直以来,自己都在控制自己的情绪,所以对于这件事来说,倒是很快的就恢复到了正常水平。

但是,一个人的离去却也不会那么简简单单的就毫无影响。曾经不管家里事情的我,需要经常考虑母亲的感受,对于未来应该如何走下去,虽然有了明确的方向,可也会失落父亲不能看着我变得更好。

人生充满了遗憾,只是没想到这个遗憾离我如此之近。