netcore Datax Web項目 docker打包


記一次項目打包過程

准備基礎環境文件

基於CentOS7

  1. Python 2.6.X (本文准備了 2.6.1)
  2. Java1.8
  3. Datax 3.0
  4. 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

END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM