构建dagu和benthos作为调度平台+数据处理框架的镜像并运行

构建镜像

准备文件

dagu和benthos下载地址(根据版本自行修改)
dagu: https://github.com/dagu-dev/dagu/releases/download/v1.12.11/dagu_1.12.11_linux_amd64.tar.gz
benthos: https://github.com/benthosdev/benthos/releases/download/v4.26.0/benthos_4.26.0_linux_amd64.tar.gz

上传文件到服务器的任意目录

我用$HOME/daguDocker目录

解压并将可执行程序放到指定的目录

tar -xf dagu_1.12.11_linux_amd64.tar.gz
tar -xf benthos_4.26.0_linux_amd64.tar.gz
mv dagu $HOME/daguDocker/
mv benthos $HOME/daguDocker/

创建Dockerfile

FROM debian:12-slim

ENV TZ=Asia/Shanghai
ENV LANG=C.utf8

ENV DAGU_BASICAUTH_USERNAME="admin"
ENV DAGU_BASICAUTH_PASSWORD="admin"
ENV DAGU_AUTHTOKEN="daguApiToken"

ENV BENTHOS_HOME=/opt/etlDir/benthos
ENV DAGU_HOME=/opt/etlDir/dagu
ENV DAGU_HOST=0.0.0.0
ENV DAGU_PORT=8080
ENV DAGU_IS_BASICAUTH=1
ENV DAGU_IS_AUTHTOKEN=1
ENV DAGU_NAVBAR_COLOR="#a0aeba"
ENV DAGU_NAVBAR_TITLE="Dagu"

RUN set -eux; \
        mkdir -p ${DAGU_HOME}; \
        mkdir -p ${BENTHOS_HOME}; 

VOLUME ${DAGU_HOME}/dags ${DAGU_HOME}/data ${DAGU_HOME}/logs ${BENTHOS_HOME}

COPY dagu /usr/local/bin/
COPY benthos /usr/local/bin/

ENTRYPOINT ["dagu"]

EXPOSE 8080
CMD ["start-all"]

构建镜像

docker build -t ctrimages.iisp.net/eusp/dagu:1.12.11 .

运行

在docker上测试运行

docker run --rm -it --privileged=true --name=dagu \
           -p 8088:8080 \
           -v /tmp/etlDir/benthos:/opt/etlDir/benthos \
           -v /tmp/etlDir/dagu/dags:/opt/etlDir/dagu/dags \
           -v /tmp/etlDir/dagu/data:/opt/etlDir/dagu/data \
           -v /tmp/etlDir/dagu/logs:/opt/etlDir/dagu/logs \
           ctrimages.iisp.net/eusp/dagu:1.12.11

注意:生产环境运行的时候应该是后台运行,且不应该把数据卷放在临时目录

使用浏览器访问dagu,需要注意防火墙开放端口

http://192.168.10.216:8088

用户名和密码在Dockerfile中由环境变量指定了

ENV DAGU_BASICAUTH_USERNAME="admin"
ENV DAGU_BASICAUTH_PASSWORD="admin"

在Rancher平台运行

定义dagu.yaml文件

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: dagu12-pvc
  namespace: eusp-product
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  storageClassName: nfs-client-storageclass
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: dagu12-server
  namespace: eusp-product
spec:
  selector:
    matchLabels:
      app: dagu12-server
  template:
    metadata:
      labels:
        app: dagu12-server
    spec:
      containers:
        - name: dagu12-server
          image: ctrimages.iisp.net/eusp/dagu:1.12.11
          imagePullPolicy: Always
          env:
            - name: DAGU_BASICAUTH_PASSWORD
              value: HzjcDagu.com!2
          ports:
            - containerPort: 8080
              name: dagu
              protocol: TCP
          volumeMounts:
            - mountPath: /opt/etlDir/benthos
              name: dagu12-vm
              subPath: benthos
            - mountPath: /opt/etlDir/dagu/dags
              name: dagu12-vm
              subPath: dags
            - mountPath: /opt/etlDir/dagu/data
              name: dagu12-vm
              subPath: data
            - mountPath: /opt/etlDir/dagu/logs
              name: dagu12-vm
              subPath: logs
      volumes:
        - name: dagu12-vm
          persistentVolumeClaim:
            claimName: dagu12-pvc
      imagePullSecrets:
        - name: harbor-secret
---
apiVersion: v1
kind: Service
metadata:
  name: dagu12-server-nodeport
  namespace: eusp-product
spec:
  ports:
    - name: dagu
      nodePort: 31622
      port: 8080
      protocol: TCP
      targetPort: 8080
  selector:
    app: dagu12-server
  type: NodePort

运行

kubectl apply -f dagu.yaml

通过调度到的work节点暴漏的31622端口访问dagu

http://192.168.10.216:31622

注意:登录密码在yaml中通过环境变量DAGU_BASICAUTH_PASSWORD指定为HzjcDagu.com!2

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一点见解

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值