51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

使用docker部署基于golang的开源论坛bbs-go

# 使用 docker 部署基于 golang 的开源论坛 bbs-go {#使用-docker-部署基于-golang-的开源论坛-bbs-go}

本文讲述如何使用 docker 部署基于 golang 的开源论坛 bbs-go。

本文作为文章基于 golang 的开源论坛 bbs-go 的搭建步骤的补充,阅读本文前,请先阅读基于 golang 的开源论坛 bbs-go 的搭建步骤

# 1. 搭建 docker 环境 {#_1-搭建-docker-环境}

阅读如下 2 篇文章即可搭建好 docker 环境:
安装 docker 服务
安装 docker-compose

# 2. docker 运行论坛的 server 模块 {#_2-docker-运行论坛的-server-模块}

# 2.1 编写 Dockerfile {#_2-1-编写-dockerfile}

参考如下 Dockerfile:

FROM alpine:3.9.4
MAINTAINER Wang Shibiao

#需要如下链接操作,否则运行程序会提示not found
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2

#修改镜像源为国内
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && apk update

#配置时区为中国
RUN apk add tzdata \
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone

# 拷贝程序
COPY ./bbs-go /root/
COPY ./bbs-go.pro.yaml /root/

# 容器启动后自动运行bbs服务
CMD ["/root/bbs-go", "--config", "/root/bbs-go.pro.yaml"]

# 2.2 编写 docker-compose.yml {#_2-2-编写-docker-compose-yml}

参考如下 docker-compose.yml:

version: "3"

services:
  service:
    build: .
    container_name: forum-server
    restart: always
    volumes:
      - /data/docker-container/forum-server/data:/data
    ports:
      - "8082:8082"
    tty: true

# 2.3 准备程序 {#_2-3-准备程序}

准备编译好的程序 bbs-go 和配置文件 bbs-go.pro.yaml。

# 2.4 运行 docker 容器 {#_2-4-运行-docker-容器}

现在 dockerfile 所在目录的内容如下:

[root@VM-0-6-centos ~]# cd /data/dockerfile/forum-server/
[root@VM-0-6-centos forum-server]# ll
总用量 36976
-rwxr-xr-x 1 root root 37848299 11月 19 10:57 bbs-go
-rw-r--r-- 1 root root     1752 11月 19 10:57 bbs-go.pro.yaml
-rw-r--r-- 1 root root      214 11月 18 16:36 docker-compose.yml
-rw-r--r-- 1 root root      629 11月 19 10:59 Dockerfile
[root@VM-0-6-centos forum-server]#

在 dockerfile 所在目录执行命令docker-compose up -d --build运行 docker 服务:

[root@VM-0-6-centos forum-server]# docker-compose up -d --build
Building service
Step 1/8 : FROM alpine:3.9.4
 ---> 055936d39205
Step 2/8 : MAINTAINER Wang Shibiao
 ---> Using cache
 ---> 2482b33fb48a
Step 3/8 : RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
 ---> Using cache
 ---> 5e4a03cdcd9e
Step 4/8 : RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && apk update
 ---> Using cache
 ---> e9cd4d038df8
Step 5/8 : RUN apk add tzdata     && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime     && echo "Asia/Shanghai" > /etc/timezone
 ---> Using cache
 ---> 816557f74c0d
Step 6/8 : COPY ./bbs-go /root/
 ---> Using cache
 ---> 295388eab502
Step 7/8 : COPY ./bbs-go.pro.yaml /root/
 ---> Using cache
 ---> fbd78e420d4f
Step 8/8 : CMD ["/root/bbs-go", "--config", "/root/bbs-go.pro.yaml"]
 ---> Using cache
 ---> 29c02d7a8d5c

Successfully built 29c02d7a8d5c
Successfully tagged forum-server_service:latest
forum-server is up-to-date
[root@VM-0-6-centos forum-server]# docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                                      NAMES
d762e159688b        forum-server_service   "/root/bbs-go --conf..."   45 minutes ago      Up 45 minutes       0.0.0.0:8082->8082/tcp                     forum-server
a64725aed557        mysql_mysql            "docker-entrypoint.s..."   20 hours ago        Up 20 hours         0.0.0.0:3306->3306/tcp, 33060/tcp          mysql
4872b0c1e224        nginx_service          "nginx -g 'daemon of..."   43 hours ago        Up 20 hours         0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   nginx
[root@VM-0-6-centos forum-server]#
赞(4)
未经允许不得转载:工具盒子 » 使用docker部署基于golang的开源论坛bbs-go