Docker部署

当前Docker镜像支持开发模式dev和生产模式start

  • 开发模式内置了golang和nodejs环境;

  • 生产模式提供了飞布运行所必须得环境;

构建镜像

您可以按照下述方法自行构建镜像,也可以使用Fireboom官方构建的镜像,前往 dockerhub查看

Dockerfile

下面是构建Fireboom镜像依赖的所有文件,详情前往仓库查看:https://github.com/lcRuri/fireboom-docker

fireboom-docker目录
Dockerfile
FROM golang:1.20-alpine

MAINTAINER lcRuri

RUN apk update && \
    apk add --no-cache git bash curl

# 安装 Node.js
RUN apk add --no-cache nodejs npm

WORKDIR /dist

# 将host.sh脚本复制到容器中

COPY ./host.sh /dist

# 运行脚本
RUN chmod +x host.sh

# 指定挂载目录
VOLUME /dist/log
VOLUME /dist/store
VOLUME /dist/template
VOLUME /dist/upload
VOLUME /dist/custom-go
VOLUME /dist/custom-ts
VOLUME /dist/exported

EXPOSE 9123
EXPOSE 9991

ENTRYPOINT ["/dist/host.sh"]
host.sh
#!/bin/bash

# 解决docker镜像IPV6的问题
echo "0.0.0.0 localhost">/etc/hosts

# 使用install.sh脚本安装Fireboom,并使用 init-todo 模板初始化
curl -fsSL fireboom.io/install.sh | bash -s fb-project -t fb-init-todo

start_command="/dist/fireboom $1"

eval "$start_command"

构建

在上述fireboom-docker目录下执行如下命令:

docker build -t fireboom_server:latest

使用方法

1. 拉取镜像

# 拉取镜像
docker pull fireboomapi/fireboom_server:latest

2. 运行容器

  • 以开发模式启动,不可用于正式环境!

# 1,前往工作目录
cd workspace
# 2,以挂载目录的方式运行容器
docker run -it -v $(pwd)/store:/fbserver/store \
		-v $(pwd)/upload:/fbserver/upload \
		-v $(pwd)/template:/fbserver/template \
		-v $(pwd)/exported:/fbserver/exported \
		-v $(pwd)/custom-go:/fbserver/custom-go \
		-v $(pwd)/custom-ts:/fbserver/custom-ts \
		-p 9123:9123 -p 9991:9991 \
		 fireboomapi/fireboom_server:latest dev 

若是windows系统,请将 $(pwd) 替换为**${pwd}**

  • 以生产模式启动

docker run -it -p 9123:9123 -p 9991:9991 fireboom_server:latest start 

挂载目录

容器的工作目录为:./fbserver,根据需求挂载下述子目录。

  • 存储目录: store、upload、exported

  • 钩子目录:custom-go 或 custom-ts (不用钩子,无需暴露)

  • 日志目录(可选):log

端口说明

  • 9123:飞布控制台的端口

  • 9991:飞布处理所有api请求的端口

3. 使用Fireboom

访问地址:http://localhost:9123

最后更新于