docker-compose 部署gitlab,jenkins

一蛙讥、Docker Compose 部署 GitLab

GitLab 是利用 Ruby on Rails 一個(gè)開源的版本管理系統(tǒng)锯蛀,實(shí)現(xiàn)一個(gè)自托管的 Git 項(xiàng)目倉庫,可通過 Web 界面進(jìn)行訪問公開的或者私人項(xiàng)目次慢。它擁有與 Github 類似的功能旁涤,能夠?yàn)g覽源代碼,管理缺陷和注釋迫像∨蓿可以管理團(tuán)隊(duì)對倉庫的訪問,它非常易于瀏覽提交過的版本并提供一個(gè)文件歷史庫闻妓。團(tuán)隊(duì)成員可以利用內(nèi)置的簡單聊天程序 (Wall) 進(jìn)行交流菌羽。它還提供一個(gè)代碼片段收集功能可以輕松實(shí)現(xiàn)代碼復(fù)用,便于日后有需要的時(shí)候進(jìn)行查找由缆。

1注祖、部署 GitLab

我們使用 Docker 來安裝和運(yùn)行 GitLab 中文版,docker-compose.yml 配置如下:

version: '3'
services:
    gitlab:
      image: 'twang2218/gitlab-ce-zh'
      restart: always
      container_name: 'gitlab'
      privileged: true
      hostname: 'gitlab'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://192.168.152.204或者域名'
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
          gitlab_rails['smtp_enable'] = true
          gitlab_rails['smtp_address'] = "smtp.163.com"
          gitlab_rails['smtp_port'] = 465
          gitlab_rails['smtp_user_name'] = "xxx@163.com"
          gitlab_rails['smtp_password'] = "xxx"
          gitlab_rails['smtp_domain'] = "163.com"
          gitlab_rails['smtp_authentication'] = "login"
          gitlab_rails['smtp_enable_starttls_auto'] = true
          gitlab_rails['smtp_tls'] = true
          gitlab_rails['gitlab_email_from'] = 'xxx@163.com'
          gitlab_rails['gitlab_shell_ssh_port'] = 220
          unicorn['port'] = 8888
          nginx['listen_port'] = 80
      ports:
        - '8081:80'
        - '443:443'
        - '220:22'
      volumes:
        - /data/gitlab/config:/etc/gitlab
        - /data/gitlab/data:/var/opt/gitlab
        - /data/gitlab/logs:/var/log/gitlab

2均唉、配置 GitLab

image.png
  • 設(shè)置管理員初始密碼氓轰,這里的密碼最好是 字母 + 數(shù)字組合,并且大于等于 8 位

  • 配置完成后登錄,管理員賬號是 root

image.png

注意: 如果服務(wù)器配置較低,啟動(dòng)運(yùn)行可能需要較長時(shí)間浪谴,請耐心等待

3厕鹃、設(shè)置 GitLab

第一次使用時(shí)可以做一些初始化設(shè)置肯污,點(diǎn)擊 管理區(qū)域 -> 設(shè)置

image.png
  • 關(guān)閉頭像功能册养,由于 Gravatar 頭像為網(wǎng)絡(luò)頭像亏吝,在網(wǎng)絡(luò)情況不理想時(shí)可能導(dǎo)致訪問時(shí)卡頓
image.png
  • 由于是內(nèi)部代碼托管服務(wù)器抗俄,可以直接關(guān)閉注冊功能炉抒,由管理員統(tǒng)一創(chuàng)建用戶即可
image.png

4奢讨、賬戶管理

使用時(shí)請不要直接通過 root 用戶操作,需要先創(chuàng)建用戶焰薄,然后通過創(chuàng)建的用戶操作拿诸,如果你是管理員還需要為其他開發(fā)人員分配賬戶

  • 創(chuàng)建賬戶,點(diǎn)擊 管理區(qū)域 -> 新建用戶
image.png
  • 設(shè)置賬戶信息塞茅,同時(shí)你可以將自己設(shè)置為管理員
image.png
  • 修改用戶密碼亩码,由于我們創(chuàng)建時(shí)并沒有配置郵箱,所以還需要重新編輯用戶信息并手動(dòng)設(shè)置密碼
image.png
image.png
  • 退出并使用新賬戶登錄
image.png
image.png

注意: 創(chuàng)建完賬戶野瘦,第一次登錄時(shí)還會(huì)提示你修改登錄密碼

5描沟、項(xiàng)目管理

  • 點(diǎn)擊 + 號 -> 新建項(xiàng)目
image.png
  • 輸入項(xiàng)目名稱及描述信息,設(shè)置可見等級為私有鞭光,這樣別人就看不見你的項(xiàng)目
image.png
image
  • 我們選擇通過增加一個(gè) README 的方式來初始化項(xiàng)目

  • 直接提交修改即可

6吏廉、使用 SSH 方式拉取和推送

1、生成 SSH KEY

  • 使用 ssh-keygen 工具生成惰许,位置在 Git 安裝目錄下席覆,我的是 C:\Program Files\Git\usr\bin,輸入命令:
ssh-keygen -t rsa -C "GitLab的郵箱賬號"
  • 執(zhí)行成功后的效果:
Microsoft Windows [版本 10.0.14393]
(c) 2016 Microsoft Corporation汹买。保留所有權(quán)利娜睛。

C:\Program Files\Git\usr\bin>ssh-keygen -t rsa -C "topsale@vip.qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Lusifer/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Lusifer/.ssh/id_rsa.
Your public key has been saved in /c/Users/Lusifer/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cVesJKa5VnQNihQOTotXUAIyphsqjb7Z9lqOji2704E topsale@vip.qq.com
The key's randomart image is:
+---[RSA 2048]----+
|  + ..=o=.  .+.  |
| o o + B .+.o.o  |
|o   . + +=o+..   |
|.=   .  oo...    |
|= o     So       |
|oE .    o        |
| .. .. .         |
| o*o+            |
| *B*oo           |
+----[SHA256]-----+

C:\Program Files\Git\usr\bin>

2、復(fù)制 SSH-KEY 信息到 GitLab

  • 密鑰位置在:C:\Users\你的用戶名\.ssh 目錄下卦睹,找到 id_rsa.pub 并使用編輯器打開,如:
    image.png
image.png
  • 登錄 GitLab方库,點(diǎn)擊“用戶頭像”-->“設(shè)置”-->“SSH 密鑰”

  • 成功增加密鑰后的效果

image.png

7结序、使用 TortoiseGit(window10)

1、克隆項(xiàng)目

  • 新建一個(gè)存放代碼倉庫的本地文件夾

  • 在文件夾空白處按右鍵

  • 選擇 Git 克隆...

    image.png

15718833-b4c3ddb1e0ee23d5.png
  • 復(fù)制項(xiàng)目地址到 URL
image.png
  • 如果彈出連接信息請選擇是
image.png
  • 成功克隆項(xiàng)目到本地
image.png

2纵潦、推送項(xiàng)目

  • 創(chuàng)建或修改文件(這里的文件為所有文件徐鹤,包括:代碼、圖片等)

  • 我們以創(chuàng)建 .gitignore 過濾配置文件為例邀层,該文件的主要作用為過濾不需要上傳的文件返敬,比如:IDE 生成的工程文件、編譯后的 class 文件等

  • 在工程目錄下寥院,新建 .gitignore 文件劲赠,并填入如下配置

target/
!.mvn/wrapper/maven-wrapper.jar

## STS ##
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans

## IntelliJ IDEA ##
.idea
*.iws
*.iml
*.ipr

## JRebel ##
rebel.xml

## MAC ##
.DS_Store

## Other ##
logs/
temp/
image.png
  • 右鍵呼出菜單,選擇 提交 Master...

    image.png

  • 點(diǎn)擊 全部 并填入 日志信息

image.png
  • 點(diǎn)擊 提交并推送
image.png
15718833-f50cdfe681e2c39e.png
  • 成功后的效果圖

8、查看 GitLab 確認(rèn)提交成功

image.png

二凛澎、Docker-Compose 部署 Jenkins

官方的:https://jenkins.io/doc/book/installing/

1霹肝、部署 Jenkins

docker-compose.yml文件:

version: '3'
services:
      jenkins:
        image: jenkins/jenkins:lts stephdw/jenkins-ansible
        volumes:
            - /data/jenkins/:/var/jenkins_home
            - /var/run/docker.sock:/var/run/docker.sock
            - /usr/bin/docker:/usr/bin/docker
            - /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
        ports:
            - "8080:8080"
        expose:
            - "8080"
            - "50000"
        privileged: true
        user: root
        restart: always
        container_name: jenkins
        environment:
            JAVA_OPTS: '-Djava.util.logging.config.file=/var/jenkins_home/log.properties'

這里注意一點(diǎn)使用鏡像:jenkins 擁有root權(quán)限這里要注意 運(yùn)行命令:

docker-compose up -d

如果如下錯(cuò)誤:

image.png

解決辦法修改文件權(quán)限:chown -R 1000:1000 /data/jenkins 直接可以訪問:ip:端口

image.png
查看正在運(yùn)行的容器:
docker ps
docker-compose ps
查看安裝密碼:
cat /data/jenkins/secrets/initialAdminPassword
image.png

選擇默認(rèn)插件


image.png

賬戶密碼設(shè)置

image.png
image.png

2、Jenkins 安裝 Gitlab 插件

1.首先登錄Jenkins,點(diǎn)擊“系統(tǒng)管理”>"插件管理"塑煎。在插件管理中可以看到“可更新”沫换、“可選插件”、“已安裝”插件最铁。

328388-20180721160417180-703176816.png

2.我們切換到“可選插件”選項(xiàng)卡讯赏,在搜索框中輸入gitlab,找到gitlab pulgin冷尉。選中點(diǎn)擊安裝漱挎。如下是已經(jīng)安裝好的Gitlab插件。

328388-20180721160710945-1000936579.png

3网严、Jenkins 整合 Gitlab

1识樱、配置 Gitlab

創(chuàng)建一個(gè)新項(xiàng)目

image.png

2、上傳服務(wù)器秘鑰到 gitlab

# docker 生成密鑰
[root@deploy ~]# docker exec -it jenkins /bin/bash
root@2e8b64783be4:/# ssh-keygen -t rsa -C "xxx@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+wxdAKOjCWMiiLNktBgnzH0h9RToHBrvUsdWUPf9tt4 18611142071@163.com
The key's randomart image is:
+---[RSA 2048]----+
|=.o..oo+*. .     |
|=*.o.+o. +. . .  |
|B++ B =.. .  . . |
|+= + B =   .    .|
|.   = o S   .   o|
|   . .   o .   ..|
|    .   o .    . |
|         +    . .|
|          o    .E|
+----[SHA256]-----+

root@2e8b64783be4:/# cat ~/.ssh/id_rsa.pub
秘鑰放到gitlab中


# 虛擬機(jī)生成秘鑰
[root@deploy ~]# ssh-keygen -t rsa -C "xxx@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+wxdAKOjCWMiiLNktBgnzH0h9RToHBrvUsdWUPf9tt4 18611142071@163.com
The key's randomart image is:
+---[RSA 2048]----+
|=.o..oo+*. .     |
|=*.o.+o. +. . .  |
|B++ B =.. .  . . |
|+= + B =   .    .|
|.   = o S   .   o|
|   . .   o .   ..|
|    .   o .    . |
|         +    . .|
|          o    .E|
+----[SHA256]-----+
[root@deploy ~]# cat .ssh/id_rsa.pub 
ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAABAQC1kOUt1qRxd/rJJkOIYOeM9u0twE9pZq4txKwEtAy3lT2LCcxgWbcjC0VBI84FO9XE8BKA/oEA1wCErVevnDoYfLT99x8t6SLc8bKZ9SOSAAt1LO5HkzaaBDnuoXyVRduWJHlN9zS7lGYxbEY1AHYWwA3hDl3Y/SPUC6ulwCU7QnbOn8GE7qGXW8BDdeTyIEXqn3pFYFTa7TiqnjR9w3iqzso32Yo/sDeEsdsm6uw8uEVUexBqeUdjB6OP35JLpnwaGhoXeiIW87fCtk37PFzb5quZB2yoBKTJHFU8lC+Ihh/Z/iGOyU0mmjvq8ot8P5RfDPFtpFc4Oipm3c3etNd root@deploy

3震束、將公鑰上傳到 gitlab

image.png

1怜庸、初始化項(xiàng)目

[root@deploy ~]# mkdir -p /data/Ansible/
[root@deploy ~]# cd /data/Ansible/
[root@deploy Ansible]# git config --global user.name "baiyongjie"
[root@deploy Ansible]# git config --global user.email "misterbyj@163.com"

[root@deploy Ansible]# git clone ssh://git@101.89.82.106:59888/root/Ansible.git code
Cloning into 'code'...
The authenticity of host '[101.89.82.106]:59888 ([101.89.82.106]:59888)' can't be established.
ECDSA key fingerprint is SHA256:KgiTZyrCxFQwHivVyAYc1XrpvfWVliLaC+S0cg2fwYE.
ECDSA key fingerprint is MD5:b8:f9:75:c9:53:c1:48:6e:90:65:c5:5b:e7:5c:bd:ba.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[101.89.82.106]:59888' (ECDSA) to the list of known hosts.
warning: You appear to have cloned an empty repository.

[root@deploy Ansible]# cd code/
[root@deploy code]# echo "##### jenkins test"  > README.md 
[root@deploy code]# git add .
[root@deploy code]# git commit -m 'add readme'
[master (root-commit) 3b6717d] add readme
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
[root@deploy code]# git push -u origin master    
Counting objects: 3, done.
Writing objects: 100% (3/3), 227 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git@101.89.82.106:59888/root/Ansible.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

2、配置 Gitlab 為整合 Jenkins 做準(zhǔn)備

創(chuàng)建訪問令牌,設(shè)置方法如下圖


image.png

復(fù)制訪問令牌,備用

image.png

復(fù)制Gitlab倉庫地址,備用

image.png

配置Jenkins

選擇系統(tǒng)管理->管理插件->可選擇插件->搜索 gitlab

image.png

插件安裝完成后會(huì)顯示

image.png

然后繼續(xù)安裝Gitlab Authentication和Gitlab Hook

image.png

配置jenkins連接gitlab,選擇左側(cè)的系統(tǒng)管理,然后選擇中間的系統(tǒng)設(shè)置

image.png

然后點(diǎn)擊左上角的配置,選擇Gitlab


image.png

配置GitLab垢村,Connection Name隨便填割疾,Git Host URL填GitLab的訪問地址,然后點(diǎn)Add—jenkins嘉栓,如圖:

image.png

image.png

image](https://i.loli.net/2018/08/03/5b64754243a45.png)

Credentials選擇剛創(chuàng)建的GitLab Api Token,然后點(diǎn)下Test Connection,看下是否成功,如成功點(diǎn)擊最下面的保存

image.png

配置Git plugin

image.png

創(chuàng)建一個(gè)測試工程,選擇自由風(fēng)格

image.png

源碼管理選擇git,選擇Add-Jenkins,配置Gitlab的賬號密碼

image.png

[
image.png

配置自動(dòng)觸發(fā),點(diǎn)擊構(gòu)建觸發(fā)器宏榕,先勾選Build when a change is pushed to GitLab,點(diǎn)擊高級侵佃,然后再點(diǎn)擊一下Generate就會(huì)生成一個(gè)Secret Token麻昼,如下

image.png

點(diǎn)擊左下角的保存按鈕。記錄兩個(gè)東西馋辈,一個(gè)是Build when a change is pushed to GitLab那一行中抚芦,GitLab CI Service URL:后面的 URL; 還有一個(gè)就是剛剛生成的Secret Token迈螟,這倆在后面配置GitLab工程時(shí)需要用到

配置Gitlab工程

在gitlab進(jìn)入那個(gè)叫Ansible的項(xiàng)目,點(diǎn)擊設(shè)置,點(diǎn)擊導(dǎo)入所有倉庫叉抡,在URL里填寫剛剛記下來的URL,在安全令牌里填寫剛剛記下來的Secret Token答毫,如圖:

image.png

然后點(diǎn)擊下面綠色的增加Web鉤子,如多出一個(gè)如下圖的web鉤子


image.png

如果提示 Urlis blocked: Requests to localhost are not allowed,這需要開啟允許鉤子訪問本地網(wǎng)絡(luò)

image.png

對剛剛生成的web鉤子點(diǎn)擊test褥民,選擇push events,然后就會(huì)出現(xiàn)200的成功字樣洗搂,如圖:

image.png

如果你再點(diǎn)擊一下test上面的edit消返,就會(huì)看到鉤子最近調(diào)用情況载弄,再點(diǎn)擊view details的話,就會(huì)看到具體的調(diào)用細(xì)節(jié)侦副,如圖:

image.png
測試自動(dòng)構(gòu)建

在服務(wù)器上push代碼,

[root@deploy code]# echo "測試jenkins是否會(huì)自動(dòng)構(gòu)建" > auto-jenkins
[root@deploy code]# git add .
[root@deploy code]# git commit -m 'test autojenkins'
[master 2290848] test autojenkins
 1 file changed, 1 insertion(+)
 create mode 100644 auto-jenkins
[root@deploy code]# git push origin master
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 320 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git@101.89.82.106:59888/root/Ansible.git
   3b6717d..2290848  master -> master

到Jenkins查看構(gòu)建記錄,發(fā)現(xiàn)push動(dòng)作已經(jīng)出發(fā)了Jenkins的自動(dòng)構(gòu)建

image.png

查看構(gòu)建的控制臺輸出日志,重點(diǎn)看commit message和Finished

image.png

結(jié)束語.

至此,Jenkins結(jié)合Gitlab就已經(jīng)做完了, 每次開發(fā)push代碼后觸發(fā)jenkins的自動(dòng)構(gòu)建, 可以在下面的構(gòu)建步驟里增加一些shell,ansible-playbook等來幫助我們完成自動(dòng)部署等操作.

Jenkins 整合 Ansible

安裝 jenkins 和 ansible

要 jenkins 支持 ansible 的前提條件是在 jenkins 所在的主機(jī)上安裝 ansible
jenkins 和 ansible 安裝可以參考 https://baiyongjie.com/?p=188

測試ansible

[root@deploy ansible]# cd /etc/ansible/
[root@deploy ansible]# > hosts
[root@deploy ansible]# vim hosts
[client]
10.241.0.2

# 生成秘鑰
[root@deploy ~]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:NRuBl+TBQow5l3nb+E/MCg95tpZRF/+amoRTaBIhTXw root@deploy
The key's randomart image is:
+---[RSA 2048]----+
|      .O+*+.     |
|      +.XoEo   . |
|       o.==+    o|
|         oo=. . o|
|        S +o.+ ..|
|         o+o= + .|
|          o*.B o |
|           o*.+  |
|           .o.   |
+----[SHA256]-----+

#將秘鑰拷貝到客戶機(jī)
[root@deploy ansible]# ssh-copy-id  10.241.0.2
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.241.0.2's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '10.241.0.2'"
and check to make sure that only the key(s) you wanted were added.

#測試ansible能否正常運(yùn)行
[root@deploy ansible]# ansible  client -m ping
10.241.0.2 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

#新建一個(gè)測試的ansible-playbook
[root@deploy ~]# mkdir -p /data/Ansible-playbook
[root@deploy ~]# vim /data/Ansible-playbook/jenkins-mkdir.yml
---
- hosts: client
  gather_facts: no

  tasks:
    - name: mkdir jenkins-test-dir
      file: path=/data/jenkins-test-dir  state=directory

配置jenkins

登陸jenkins 選擇系統(tǒng)管理->管理插件 安裝以下兩個(gè)插件: Ansible侦锯、AnsiColor

image.png

回到首頁,新建一個(gè)任務(wù),選擇構(gòu)建一個(gè)只有風(fēng)格的任務(wù)

image.png

然后構(gòu)建的步驟新加一個(gè)Ansible-playbook,配置腳本路徑,然后保存


image.png

查看新構(gòu)建的工程

image.png

執(zhí)行剛才構(gòu)建工程

image.png

查看工程構(gòu)建的控制臺輸出

image.png

[
image.png

到client主機(jī)查看 jenkins-test-dir 目錄是否創(chuàng)建成功

#查看client的ip地址
[root@deploy ~]# cat /etc/ansible/hosts 
[client]
10.241.0.2

#登陸到遠(yuǎn)程主機(jī)
[root@deploy ~]# ssh 10.241.0.2
Last login: Fri Aug  3 22:02:58 2018 from gateway

#查看目錄是否存在
[root@client ~]# tree  /data/
/data/
└── jenkins-test-dir

#查看目錄的詳細(xì)信息
[root@client ~]# stat  /data/jenkins-test-dir/
  File: ‘/data/jenkins-test-dir/’
  Size: 6               Blocks: 0          IO Block: 4096   directory
Device: 802h/2050d      Inode: 68197841    Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-08-03 22:19:48.393000000 +0800
Modify: 2018-08-03 22:12:27.046000000 +0800
Change: 2018-08-03 22:12:27.046000000 +0800

#從上面的信息可以看到目錄的創(chuàng)建時(shí)間為22:12:27, 與jenkins構(gòu)建時(shí)間一致
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市秦驯,隨后出現(xiàn)的幾起案子尺碰,更是在濱河造成了極大的恐慌,老刑警劉巖译隘,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亲桥,死亡現(xiàn)場離奇詭異,居然都是意外死亡固耘,警方通過查閱死者的電腦和手機(jī)题篷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厅目,“玉大人番枚,你說我怎么就攤上這事∷鸱螅” “怎么了葫笼?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拗馒。 經(jīng)常有香客問我路星,道長,這世上最難降的妖魔是什么诱桂? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任洋丐,我火速辦了婚禮,結(jié)果婚禮上挥等,老公的妹妹穿的比我還像新娘友绝。我一直安慰自己,他們只是感情好肝劲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布迁客。 她就那樣靜靜地躺著,像睡著了一般涡相。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剩蟀,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天催蝗,我揣著相機(jī)與錄音,去河邊找鬼育特。 笑死丙号,一個(gè)胖子當(dāng)著我的面吹牛先朦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播犬缨,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼喳魏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了怀薛?” 一聲冷哼從身側(cè)響起刺彩,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎枝恋,沒想到半個(gè)月后创倔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡焚碌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年畦攘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片十电。...
    茶點(diǎn)故事閱讀 39,703評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡知押,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鹃骂,到底是詐尸還是另有隱情台盯,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布偎漫,位于F島的核電站爷恳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏象踊。R本人自食惡果不足惜温亲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望杯矩。 院中可真熱鬧栈虚,春花似錦、人聲如沸史隆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泌射。三九已至粘姜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熔酷,已是汗流浹背孤紧。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拒秘,地道東北人号显。 一個(gè)月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓臭猜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親押蚤。 傳聞我的和親對象是個(gè)殘疾皇子蔑歌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容