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 就是拿来编译的工具的,休想玷污我的环境)

目录
相关文章
|
23小时前
|
JavaScript 前端开发 测试技术
Docker环境下部署Ghost开源内容管理系统
【5月更文挑战第9天】Docker环境下部署Ghost开源内容管理系统
6 0
|
2天前
|
网络安全 Docker 容器
测试开发环境下centos7.9下安装docker的minio
测试开发环境下centos7.9下安装docker的minio
|
3天前
|
Shell 数据安全/隐私保护 Docker
docker安装anaconda3 python环境
docker安装anaconda3 python环境
10 0
|
4天前
|
运维 安全 Linux
深入理解Docker自定义网络:构建高效的容器网络环境
深入理解Docker自定义网络:构建高效的容器网络环境
|
5天前
|
算法 计算机视觉 Docker
Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境
Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境
Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境
|
8天前
|
存储 Linux Docker
arm安装docker与docker-copose
现在,你已经成功在ARM架构的设备上安装了Docker和Docker Compose。你可以使用它们来管理容器和容器化应用程序。请注意,ARM设备上的Docker支持可能受到限制,某些容器可能不兼容。确保你的容器映像支持ARM架构,以便在ARM设备上正确运行。
22 6
|
14天前
|
关系型数据库 分布式数据库 PolarDB
PolarDB产品使用合集之关于在Docker环境中部署和维护PolarDB-X,有相关文章可以参考吗
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
21天前
|
Ubuntu Linux 数据安全/隐私保护
Linux(7)Ubuntu20.04 arm64安装Docker
Linux(7)Ubuntu20.04 arm64安装Docker
80 0
|
23天前
|
数据可视化 Linux Docker
Linux系统使用Docker部署Dashy导航页服务并实现公网环境访问
Linux系统使用Docker部署Dashy导航页服务并实现公网环境访问
|
23天前
|
Web App开发 Linux 数据安全/隐私保护
如何在Docker环境下安装火狐浏览器并结合内网穿透工具实现公网访问
如何在Docker环境下安装火狐浏览器并结合内网穿透工具实现公网访问