arm 64 环境利用 docker 编译 datax 工具

简介: arm 64 环境利用 docker 编译 datax 工具
  • 首先你要有个 docker ,这里就不展示 docker 的部署了,可以自行百度

下载 datax 源代码

https://github.com/alibaba/DataX/archive/refs/tags/datax_v202210.tar.gz

准备 dockerfile 文件

  • 因为公司需要用 python3,而 maven 的镜像里面只有 python 2,而且基础镜像是 debian,装python 太麻烦了,就直接拉了一个 python 镜像,通过多阶段构建,复制了一个 java 到 python 镜像,用来验证 datax 在 python3 环境是否正常
FROM maven:3.6.2 as build
ADD DataX-datax_v202210.tar.gz /tmp/
WORKDIR /tmp/DataX-datax_v202210
RUN mvn -U clean package assembly:assembly -Dmaven.test.skip=true
FROM python:3.6.15
ENV JAVA_HOME=/usr/local/openjdk-11
ENV PATH=$PATH:$JAVA_HOME/bin
COPY --from=build /usr/local/openjdk-11 /usr/local/openjdk-11
COPY --from=build /tmp/DataX-datax_v202210/target/datax/datax /datax
RUN python3 /datax/bin/datax.py /datax/job/job.json

构建镜像

docker build -t datax:python3 .
  • 构建完成后会有类似下面的输出,说明 datax 编译没有问题,并且可以在 python3 的环境下使用
2023-03-31 10:03:36.534 [job-0] INFO  JobContainer -
         [total cpu info] =>
                averageCpu                     | maxDeltaCpu                    | minDeltaCpu
                -1.00%                         | -1.00%                         | -1.00%
         [total gc info] =>
                 NAME                 | totalGCCount       | maxDeltaGCCount    | minDeltaGCCount    | totalGCTime        | maxDeltaGCTime     | minDeltaGCTime
                 G1 Young Generation  | 0                  | 0                  | 0                  | 0.000s             | 0.000s             | 0.000s       
                 G1 Old Generation    | 0                  | 0                  | 0                  | 0.000s             | 0.000s             | 0.000s       
2023-03-31 10:03:36.534 [job-0] INFO  JobContainer - PerfTrace not enable!
2023-03-31 10:03:36.534 [job-0] INFO  StandAloneJobContainerCommunicator - Total 100000 records, 2600000 bytes | Speed 253.91KB/s, 10000 records/s | Error 0 records, 0 bytes |  All Task WaitWriterTime 0.027s |  All Task WaitReaderTime 0.049s | Percentage 100.00%
2023-03-31 10:03:36.536 [job-0] INFO  JobContainer -
任务启动时刻                    : 2023-03-31 18:03:26
任务结束时刻                    : 2023-03-31 18:03:36
任务总计耗时                    :                 10s
任务平均流量                    :          253.91KB/s
记录写入速度                    :          10000rec/s
读出记录总数                    :              100000
读写失败总数                    :                   0
Removing intermediate container 4aee10b5af79
 ---> fbbf32aa8242
Successfully built fbbf32aa8242
Successfully tagged datax:python3

获取 datax 的 tar 包

datax 构建完成后,会生成一个 tar 包,通过 inspect 去查看路径,然后直接拿出来用

docker images | head -n 3

返回的结果类似如下,<none> 是多阶段构建的时候留下来的缓存镜像

REPOSITORY                                                        TAG                                      IMAGE ID            CREATED             SIZE
datax                                                             python3                                  fbbf32aa8242        58 minutes ago      2.8GB
<none>                                                            <none>                                   2faebd0752ab        58 minutes ago      5.9GB

使用 inspect 命令查看镜像的路径

docker inspect 2faebd0752ab | grep "UpperDir"

返回的结果类似如下

                "UpperDir": "/data/docker/graph/overlay2/8c92f5323790d3dcf3022831c93dc2b1846bcb7ba097da04e23ab788e67211a9/diff",

结合上面获取到的路径,和下面的路径拼接,就可以获取到 tar 包了

tmp/DataX-datax_v202210/target/datax.tar.gz

完事之后,镜像就可以删除了,留着也没啥用(docker 就是拿来编译的工具的,休想玷污我的环境)

目录
相关文章
|
4天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
21 3
国产数据实战之docker部署MyWebSQL数据库管理工具
|
1天前
|
存储 缓存 Kubernetes
docker的替代工具有哪些?
【10月更文挑战第28天】docker的替代工具有哪些?
8 1
|
2天前
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
8 1
|
12天前
|
运维 监控 数据可视化
Docker容器可视化管理工具 - WGCLOUD基础介绍
WGCLOUD是新一代运维监测平台,它可以监控Docker容器的各种性能数据,比如内存,cpu,Image,运行时间,运行状态,端口映射等信息
|
14天前
|
Docker 容器
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
112 2
|
21天前
|
网络安全 虚拟化 Docker
SSH后判断当前服务器是云主机、物理机、虚拟机、docker环境
结合上述方法,您可以对当前环境进行较为准确的判断。重要的是理解每种环境的特征,并通过系统的响应进行综合分析。如果在Docker容器内,通常会有明显的环境标志和受限的资源视图;而在云主机或虚拟机上,虽然它们也可能是虚拟化的,但通常提供更接近物理机的体验,且可通过硬件标识来识别虚拟化平台。物理机则直接反映硬件真实信息,较少有虚拟化痕迹。通过这些线索,您应该能够定位到您所处的环境类型。
17 2
|
28天前
|
存储 监控 Shell
docker的底层原理二:容器运行时环境
本文深入探讨了Docker容器运行时环境的关键技术,包括命名空间、控制组、联合文件系统、容器运行时以及分离的进程树,这些技术共同确保了容器的隔离性、资源控制和可移植性。
36 5
|
28天前
|
jenkins Java 持续交付
Docker搭建jenkins环境
这篇文章详细介绍了如何利用Docker搭建Jenkins环境,包括拉取Jenkins镜像、配置端口映射及初始化设置的步骤。
104 0
Docker搭建jenkins环境
|
21天前
|
存储 Docker 容器
ARM架构鲲鹏主机BClinux离线安装docker步骤
下载并安装适用于ARM架构的Docker CE二进制文件,解压后移动至/usr/bin目录。创建docker组,配置systemd服务脚本(docker.service、docker.socket、containerd.service),重载systemd配置,启动并启用docker服务。编辑daemon.json配置存储驱动、镜像加速地址等,最后拉取所需镜像。
36 0
|
26天前
|
NoSQL MongoDB Docker
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。