0%

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import json
import uuid


class MyClass(object):

def __init__(self, name):
self.uid = uuid.uuid1()
self.name = name

def info(self):
return {
'uid': self.uid.hex,
'name': self.name,
}


class MyJSONEncoder(json.JSONEncoder):

def default(self, o):
if isinstance(o, MyClass):
# 返回一个可json化的数据,可以是任何类型的数据,只要它最终能转化为基础类型即可
return o.info()
# 最后调用父类的default函数,最终会调用基类的default函数
return super(MyJSONEncoder, self).default(o)

打开代码片段的设置文件

  1. 打开命令面板
  2. 输入Snippets,选择Preferences: Open User Snippets
  3. 选择想要自定义代码片段的语言

设置代码片段

具体设置可以参考以下说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
/*
// Place your snippets for Batch here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
"Print to console": {
"prefix": "log",
"body": [
"console.log('$1');",
"$2"
],
"description": "Log output to console"
}
*/
}

以ROOT用户身份运行

使用sudo命令:

1
sudo command

以命令所有者的身份运行

首先以命令所有者的身份修改命令的权限

1
chmod u+s command

当其他用户执行command命令时,会以命令所有者的身份运行该命令

1
2
3
4
# 执行命令
command
# 查看运行状态
ps aux | grep command

Ubuntu14.04上安装

1
2
3
4
echo 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main' > /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get install -y postgresql-9.4

修改为远程登录

修改文件/etc/postgresql/9.4/main/postgresql.conf:

1
2
3
4
-#listen_addresses = 'localhost'
+listen_addresses = '*'
-#password_encryption = on
+password_encryption = on

修改访问地址

修改文件/etc/postgresql/9.4/main/pg_hba.conf:

1
2
3
+host    all             all             10.0.0.0/8              trust
+host all all 172.16.0.0/12 trust
+host all all 192.168.0.0/16 trust
Read more »

准备工作

本文主要讲解怎么在Docker中部署Angular2项目,当然,该Angular2项目是由angular-cli创建的项目。

  1. 安装docker服务,参考Install Docker
  2. 安装docker-compose工具,参考Install Docker Compose
  3. 拉取镜像node:6-alpine

部署Angular2项目

编写Dockerfile文件

1
2
3
4
5
6
7
8
9
10
11
12
FROM node:6-alpine

ADD . /app
WORKDIR /app

RUN npm install -g @angular/cli http-server \
&& npm install \
&& ng build -prod \
&& cp dist/index.html dist/404.html

EXPOSE 80
CMD ["http-server", "/app/dist", "-p", "80"]
Read more »

准备工作

本文讲述怎么在Docker中部署vuejs项目,该项目使用vue-cli创建项目。

  1. 安装docker服务,参考Install Docker
  2. 安装docker-compose工具,参考Install Docker Compose
  3. 拉取镜像node:6-alpine。

创建vue项目

1
2
npm install -g vue-cli
vue init webpack myproject

部署vuejs项目

编写Dockerfile文件

1
2
3
4
5
6
7
8
9
10
11
12
FROM node:6-alpine

ADD . /app
WORKDIR /app

RUN npm install -g http-server \
&& npm install \
&& ng build \
&& cp dist/index.html dist/404.html

EXPOSE 80
CMD ["http-server", "/app/dist", "-p", "80"]
Read more »

首先alpine内嵌的是BusyBox,使用alpine的crontab实际就是使用BusyBox的crond服务。

配置文件的位置:/var/spool/cron/crontabs/root,原始内容是:

1
2
3
4
5
6
7
# do daily/weekly/monthly maintenance
# min hour day month weekday command
*/15 * * * * run-parts /etc/periodic/15min
0 * * * * run-parts /etc/periodic/hourly
0 2 * * * run-parts /etc/periodic/daily
0 3 * * 6 run-parts /etc/periodic/weekly
0 5 1 * * run-parts /etc/periodic/monthly

可以在后面添加自己的定时任务:

1
2
3
4
5
6
7
8
# do daily/weekly/monthly maintenance
# min hour day month weekday command
*/15 * * * * run-parts /etc/periodic/15min
0 * * * * run-parts /etc/periodic/hourly
0 2 * * * run-parts /etc/periodic/daily
0 3 * * 6 run-parts /etc/periodic/weekly
0 5 1 * * run-parts /etc/periodic/monthly
* * * * * echo 'test'

使用docker-compose部署定时任务

1
2
3
4
5
6
7
version: "2"
services:
crond:
image: alpine:3.4
volumes:
- ./crontabs/root:/var/spool/cron/crontabs/root
command: crond -f

项目目录结构

1
2
3
4
5
proj/
|-.docker/
|-Dockerfile
|-docker-compose.yaml
|-.env

Dockerfile文件编写

  1. 【必须】选择一个合适的镜像,参考FROM命令。

  2. 【可选】安装项目依赖,项目依赖一定要在前面进行安装

    1. 【必须】将配置依赖的配置文件拷贝到响应目录下,参考COPY命令。

    2. 【必须】设置工作目录,参考WORKDIR命令。

    3. 【必须】安装项目依赖,参考RUN命令。

  3. 【可选】设置docker build参数,参考ARG命令。

  4. 【必须】将项目代码拷贝到响应目录,参考ADD命令。

  5. 【必须】设置工作目录,如果2没有执行的话,参考WORKDIR命令。

  6. 【可选】编译项目,如果必须的话,参考RUN命令。

  7. 【可选】设置挂载目录,如果必须的话,参考VOLUME命令。

  8. 【必须】设置需要暴露的端口号,参考EXPOSE命令。

  9. 【必须】设置服务启动时运行的命令,参考CMD命令。

Read more »

配置docker-compose.yaml文件

1
2
3
4
5
6
7
8
9
10
11
version: "2"
services:
pypi:
image: hypc/pypi:1.3.1-alpine
volumes:
- /srv/pypi:/srv/pypi
ports:
- 8080:80
environment:
- PYPI_PORT=80
- FALLBACK_URL=https://mirrors.aliyun.com/pypi/simple/

运行服务

1
docker-compose up -d