记一次项目打包过程
准备基础环境文件
基于CentOS7
- Python 2.6.X (本文准备了 2.6.1)
- Java1.8
- Datax 3.0
- Dokcer
==java,python 版本最好一致,其他版本没有测试==
准备项目文件
下面是我的目录,自行替换 datax解压放在 /home/www/datax dotnet项目放在 /home/www/dataxWeb 创建dockerfile文件
## 基础镜像 FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base WORKDIR /app EXPOSE 5000:5000 ## 导入datax 到/home/datax COPY ["datax","/home/datax"] ENV JAVA_HOME=/home/datax/env/jdk1.8.0_221 ENV PYTHON_HOME=/home/datax/env/python ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH=$PATH:$JAVA_HOME/bin:$PYTHON_HOME/bin ## 提升权限 RUN chmod -R 777 $JAVA_HOME/bin/java RUN chmod -R 777 $PYTHON_HOME ## 编译 FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build WORKDIR /src COPY ["dataxWeb/dataxWeb.csproj", "dataxWeb/"] RUN dotnet restore "dataxWeb/dataxWeb.csproj" COPY . . WORKDIR "/src/dataxWeb" RUN dotnet build "dataxWeb.csproj" -c Release -o /app ## 发布Release到/app FROM build AS publish RUN dotnet publish "dataxWeb.csproj" -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "dataxWeb.dll"]
编译Python源文件
下载源码包
wget https://www.python.org/ftp/python/2.6.1/Python-2.6.1.tgz
解压到当前目录
tar -xzvf Python-2.6.1.tgz
准备压缩,编译,安装
cd Python-2.6.1 ./configure --prefix=/usr/local/python make && make install
移动编译python到 datax下面
mv -f /usr/local/python/ /home/www/datax/env/
准备jdk文件
官方下载jdk 1.8 即可,解压到 /home/www/datax/env/jdk1.8.0_221/
docker 编译
开始编译docker 镜像
cd /home/www/ docker build -t xxx/dataxweb:0.1 --no-cache --rm=true .
运行容器
docker run -d --name dataxweb -p 5000:5000 xxx/dataxweb:0.1
测试
docker exec -it dataxweb /bin/bash ##进入容器 java -version ##java version "1.8.0_221" python --version ## Python 2.6.1