deepin(深度)系统安装docker

2019-3-9 liyangcoder 服务器

apt-get直接装的太老,按照docker官方文档,安装失败。具体参考deepin官方文档,此文档很详细,而且还解释了为什么按照docker文档安装不成功。

https://wiki.deepin.org/wiki/Docker

标签: docker

评论(1) 浏览(1313)

免sudo使用docker命令

2019-3-9 liyangcoder 服务器

实现思路,将当前用户添加到docker组。


如果还没有 docker group 就添加一个:

sudo groupadd docker


将用户加入该 group 内。然后退出并重新登录就生效啦。

sudo gpasswd -a ${USER} docker


重启 docker 服务

sudo service docker restart


切换当前会话到新 group 或者重启 X 会话

newgrp - docker


注意:最后一步是必须的,否则因为 groups 命令获取到的是缓存的组信息,刚添加的组信息未能生效,所以 docker images 执行时同样有错。


标签: docker

评论(0) 浏览(1457)

记录一个跨域相关的疑难杂症

2018-12-18 liyangcoder PHP

最近在做一个前后端完全分离的项目,这其中自然少不了一个经典的话题——跨域。

前端用的uniapp,后端用的Laravel。

前者刚刚开始接触,用后者也从来没有做过前后端分离的项目,正因为两个都不是特别的熟悉,导致这次在坑中摸爬滚打了好久才爬出来。

阅读全文>>

标签: Laravel 跨域

评论(4) 浏览(2838)

proc_open(): fork failed errors

2018-11-22 liyangcoder PHP

If composer shows proc_open() fork failed on some commands:
PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar

This could be happening because the VPS runs out of memory and has no Swap space enabled.

free -m

total used free shared buffers cached
Mem: 2048 357 1690 0 0 237
-/+ buffers/cache: 119 1928
Swap: 0 0 0

To enable the swap you can use for example:

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

You can make a permanent swap file following this tutorial.


转自:https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors

评论(2) 浏览(2432)

如何删除还没有被add到git的文件(git clean的用法)

2018-11-17 liyangcoder Web周边

git clean命令用来从你的工作目录中删除所有没有tracked过的文件


git clean经常和git reset --hard一起结合使用. 记住reset只影响被track过的文件, 所以需要clean来删除没有track过的文件. 结合使用这两个命令能让你的工作目录完全回到一个指定的<commit>的状态


用法


git clean -n

是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒


git clean -f

删除当前目录下所有没有track过的文件. 他不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过


git clean -f <path>

删除指定路径下的没有被track过的文件


git clean -df

删除当前目录下没有被track过的文件和文件夹


git clean -xf

删除当前目录下所有没有track过的文件. 不管他是否是.gitignore文件里面指定的文件夹和文件

标签: git

评论(2) 浏览(2749)

libxml2和libxml2-dev的区别

2018-11-14 liyangcoder 服务器

在我们编译安装PHP时,经常会报出类似的错误:

configure: error: libxml2 not found. Please check your libxml2 installation.

字面意思很容易理解,是说没找到libxml2,但是如果我们搜索一下系统,会发现libxml2是安装过的,而且我们再使用包管理工具(apt-get/yum)来安装,会提示libxml2已安装:

libxml2 is already the newest version.

这是为什么呢?

阅读全文>>

评论(1) 浏览(2143)

JavaScript中的addEventListener自定义事件

2018-9-17 liyangcoder JavaScript

说到JavaScript事件,我们首先就能想到click事件、submit事件等等。但是有时候这些预定义的事件并不能满足我们的需求,比如在提供给第三方的SDK中。

由于SDK运行的环境非常复杂,第三方业务中有什么代码我们无法预知,这可能会导致事件冲突的问题,这时候我们就需要自定义事件来避免此类冲突了。

阅读全文>>

标签: addEventListener自定义事件

评论(3) 浏览(3720)

使用left join代替not in

2018-9-11 liyangcoder MySQL

有这样的需求:查找在A表中存在,而在B表中不存在的数据,首先我们想到的应该是使用not in来查询。

构建的sql是这样的:

select * from a where a.username not in (select username from b)

看上去这个SQL并没有什么不妥,事实上,当两张表的数据量都不大情况下,确实也什么问题。

如果数据量大了,我们给两张表的username都加上索引,以为可以万事大吉了,可以实际发现username的索引并没有被使用。

那么如何解决这个问题呢?我们可以使用jeft join来曲线解决这个问题:

select a.* from a left join b on a.username=b.username where b.username is not null

这样一来,索引就可以被使用上了,效率大大提高。

评论(1) 浏览(2157)

父页面于iframe通信

2018-7-18 liyangcoder HTML

下面是一个iframe和父页面相互通信的demo,其中使用了一个非常方便的方法postMessage,但是有时候,我们的子页面可能会包含其他业务逻辑,这里面如果也用到了postMessage,就难免会产生冲突,这时候,我们可以使用自定义事件来解决。

阅读全文>>

标签: iframe

评论(2) 浏览(2307)

linux shell 获取当前正在执行脚本的绝对路径

2018-6-6 liyangcoder 服务器

workdir=$(cd $(dirname $0); pwd)

解释:

步骤1

dirname $0,取得当前执行的脚本文件的父目录


步骤2

cd到父目录,即进入当前工作目录


步骤3

pwd显示当前工作目录


评论(3) 浏览(1964)

Powered by emlog 冀ICP备13011830号-1