zoukankan      html  css  js  c++  java
  • [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 项目运行方式一样。

  • 相关阅读:
    java实现网络监听
    程序员必须知道FTP命令
    Java进化的尽头
    Oracle逻辑备份与恢复(Data Pump)
    JQuery日期选择器插件date-input
    大型高并发高负载网站的系统架构剖析
    万言万当,不如一默为官之道
    angular.js高级程序设计书本开头配置环境出错,谁能给解答一下
    安装meteor运行基本demo发生错误。
    nodejs 通过 get获取数据修改redis数据
  • 原文地址:https://www.cnblogs.com/yangyxd/p/15662162.html
Copyright © 2011-2022 走看看