Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

canal-server,canal-admin的dockerfile是否增加arm #4897

Closed
wolf27w opened this issue Oct 7, 2023 · 4 comments
Closed

canal-server,canal-admin的dockerfile是否增加arm #4897

wolf27w opened this issue Oct 7, 2023 · 4 comments
Assignees
Milestone

Comments

@wolf27w
Copy link

wolf27w commented Oct 7, 2023

看代码里的镜像使用的centos6,基础上配置的jdk,需要安装ssh,pre等等,但是替换成arm的镜像就有各种问题,有arm的dockerfile吗,或者dockerfile写详细点也可以

@agapple
Copy link
Member

agapple commented Oct 7, 2023

ed754b5

@agapple agapple added this to the v1.1.7 milestone Oct 7, 2023
@agapple agapple closed this as completed Oct 8, 2023
@agapple agapple self-assigned this Oct 8, 2023
@wolf27w
Copy link
Author

wolf27w commented Oct 9, 2023

我重新拉取了一下代码,构建arm64的镜像,但是在使用canal-server的时候启动报错:

DOCKER_DEPLOY_TYPE=VM
==> INIT /alidata/init/02init-sshd.sh
==> EXIT CODE: 0
==> INIT /alidata/init/fix-hosts.py
==> EXIT CODE: 0
==> INIT DEFAULT
Failed to get D-Bus connection: Operation not permitted
Failed to get D-Bus connection: Operation not permitted
==> INIT DONE
==> RUN /home/admin/app.sh
==> START ...
start canal ...

看代码是在容器中后台启动服务造成的

systemctl start sshd
systemctl start crond

在容器中启动Dbus查看少了
Failed to start message bus: Failed to bind socket "/run/dbus/system_bus_socket": No such file or directory
但是我直接使用容器创建也是一样的,如果通过/usr/sbin/init创建容器,然后在进入容器启动就不会

[root@ops-jenkins ~]# docker run -itd --name canal --privileged=true canal-server:latest /usr/sbin/init
3863a4e986f56d8a3d4c0da2e9bdaed55f930e8bbd40cafdc74ef359342478b2
[root@ops-jenkins ~]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                       NAMES
3863a4e986f5        canal-server:latest   "/alidata/bin/main.s…"   3 seconds ago       Up 2 seconds        9100/tcp, 11110-11112/tcp   canal
0da8e6d1f0e7        028422d6b221          "/bin/bash"              2 weeks ago         Up 2 weeks                                      trusting_sammet
[root@ops-jenkins ~]# docker exec -it 3863a4e986f5 /bin/bash
[root@3863a4e986f5 admin]# /alidata/bin/main.sh 
DOCKER_DEPLOY_TYPE=VM
==> INIT /alidata/init/02init-sshd.sh
==> EXIT CODE: 0
==> INIT /alidata/init/fix-hosts.py
==> EXIT CODE: 0
==> INIT DEFAULT
==> INIT DONE
==> RUN

但是,在我的k8s里我需要如何修改yml文件呀,这个是我的yml文件内容。

apiVersion: v1
kind: ConfigMap
metadata:
  name: canal-server
data:
  admin_manager: "canal-admin:8089"
  admin_port: "11110"
  admin_user: "admin"
  admin_password: "6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9"   # 123456加密
  # admin_register_cluster: "local"
  admin_register_auto: "true"
  admin_register_name: "canal-server"
  canal_destinations: "canal_instance"
  canal_server_mode: "rocketMQ"
  rocketmq_namesrv_addr: "rocketmq-name-server-service:9876"
  rockermq_producer_group: "CANAL_PRODUCER"
---

kind: StatefulSet
apiVersion: apps/v1
metadata:
  name: canal-server
  labels:
    app.kubernetes.io/name: canal-server
    app: canal-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: canal-server
      app: canal-server
  template:
    metadata:
      name: canal-server
      labels:
        app.kubernetes.io/name: canal-server
        app: canal-server
    spec:
      imagePullSecrets:
      - name: secret
      containers:
        - name: canal-server
          image: '10.32.128.214/ops/canal-server:latest'
          imagePullPolicy: IfNotPresent
          securityContext:
            privileged: true
          ports:
            - name: tcp
              containerPort: 11111
              protocol: TCP
          env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.name
            - name: SERVICE_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: 'metadata.labels[''app'']'
            - name: STS_NAMESPACE
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: metadata.namespace
            - name: canal.register.ip
              value: $(POD_NAME).$(SERVICE_NAME).$(STS_NAMESPACE)
            - name: canal.admin.manager
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: admin_manager
            - name: canal.admin.port
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: admin_port
            - name: canal.admin.user
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: admin_user
            - name: canal.admin.passwd
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: admin_password
            - name : canal.destinations
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: canal_destinations
            - name : canal.serverMode
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: canal_server_mode
            - name : rocketmq.namesrv.addr
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: rocketmq_namesrv_addr
            - name : rocketmq.producer.group
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: rockermq_producer_group
            # - name: canal.admin.register.cluster
            #   valueFrom:
            #     configMapKeyRef:
            #       name: canal-server
            #       key: admin_register_cluster
            - name: canal.admin.register.auto
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: admin_register_auto
            - name: canal.admin.register.name
              valueFrom:
                configMapKeyRef:
                  name: canal-server
                  key: admin_register_name
          resources:
            requests:
              cpu: 250m
              memory: 256Mi
          livenessProbe:
            tcpSocket:
              port: 11112
            initialDelaySeconds: 10
            timeoutSeconds: 5
            periodSeconds: 30
          readinessProbe:
            tcpSocket:
              port: 11112
            initialDelaySeconds: 10
            timeoutSeconds: 5
            periodSeconds: 30
      restartPolicy: Always
      nodeSelector: {}
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 1
              podAffinityTerm:
                labelSelector:
                  matchLabels:
                    app.kubernetes.io/name: canal-server
                namespaces:
                  - ops
                topologyKey: kubernetes.io/hostname
  serviceName: canal-server
  revisionHistoryLimit: 10

---

kind: Service
apiVersion: v1
metadata:
  name: canal-server
spec:
  ports:
    - protocol: TCP
      port: 11110
      targetPort: 11110
  type: ClusterIP
  selector:
    app.kubernetes.io/name: canal-server
    app: canal-server

@Gshelldong
Copy link

@wolf27w 你是如何解决这个问题的,我使用v1.1.7也出现了同样的问题。

@wolf27w
Copy link
Author

wolf27w commented Aug 6, 2024

我的是自己构建的dockerfile,后来有了arm64的我就没有构建直接使用的他们的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants