• [Docker] 使用Dockerfile将项目打包成DockerImage


    使用Dockerfile将项目打包成DockerImage

    Java Maven 项目打包出Docker镜像

    1. 项目结构

    src
      main
        ...
      test
        ...
    target
    Dockerfile
    pom.xml
    

    Dockerfile

    FROM   openjdk:8-jre-alpine
    # EXPOSE 8080
    MAINTAINER yangyxd
    
    ADD xxx.jar    xxx-svr.jar
    
    ENTRYPOINT ["java","-jar","xxx-svr"]
    

    2. 打包出 jar

    mvn package
    

    打包成功后,将在 target 目录中生成 xxx.jar 文件

    3. 生成 dockerImage

    在 windows 上,我比较喜欢用bat来执行命令。在项目根目录中,新建 DockerbuildImage.bat 文件:

    echo off
    echo 编译Docker镜像
    cd target
    docker build -f ../Dockerfile -t my-project-name:1.0.0 .
    docker images
    pause
    

    其中, docker images 是在生成成功后顺便列出所有镜像来观察一下,可以去掉。
    my-project-name 为自定义的镜像名称,1.0.0 为自定义的镜像版本号。
    双击 bat 文件,即可生成镜像。

    4. 运行docker镜像

    不需要开放服务端口的服务:

    docker run --name my-project-svr -i -t -d my-project-name:1.0.0
    

    需要开放指定端口的服务:

    docker run --name my-project-svr -i -t -d -p 8080:8080 my-project-name:1.0.0
    

    其中, my-project-svr 为自定义的容器名称。


    Node.js 项目打包出Docker镜像

    1. 项目结构

    dist
    doc
    node_modules
    src
      main
        ...
      test
        ...
    Dockerfile
    package.json
    package-lock.json
    tsconfig.json
    ...
    

    Dockerfile

    FROM node:14.15.5-alpine3.13
    EXPOSE 8080
    # 服务端口
    ENV EXPOSE_PORT 8080
    
    # 如果是windows进程设置环境变量 cmd => set ENV_NAME=xxx
    ENV ENV_NAME xxx
    # 数据库配置
    ENV DB_MYSQL_CONFIG '{"host":"xxx","port":3306,"user":"xxx","password":"xxx","database":"xxx","connectTimeout":15000}'
    
    RUN mkdir /xxx_service
    WORKDIR /xxx_service
    COPY package.json package.json
    COPY package-lock.json package-lock.json
    
    # 安装依赖
    RUN npm install --registry=https://registry.npm.taobao.org
    
    # 拷贝工程文件
    COPY . .
    
    # 构建 输出到dist
    RUN npm run build
    CMD ["node","--stack_trace_limit=100","dist/app.js"]
    

    2. 生成 dockerImage

    新建 DockerbuildImage.bat 文件:

    echo off
    echo 编译Docker镜像
    docker build -f Dockerfile -t my-project-name:1.0.0 .
    docker images
    pause
    

    其中, docker images 是在生成成功后顺便列出所有镜像来观察一下,可以去掉。
    my-project-name 为自定义的镜像名称,1.0.0 为自定义的镜像版本号。
    双击 bat 文件,即可生成镜像。

    3. 运行docker镜像

    和上面 Java 项目运行方式一样。

  • 相关阅读:
    c8051f交叉开关
    8052定时器2的用法
    poj1010
    poj2101
    poj1958
    poj3444
    poj2977
    DataTable 相关操作
    C#中string和StringBuilder的区别
    DataTable排序,检索,合并,筛选
  • 原文地址:https://www.cnblogs.com/yangyxd/p/15662162.html
Copyright © 2020-2023  润新知