首页 > 其他分享 >DockerFile

DockerFile

时间:2024-05-22 10:51:08浏览次数:33  
标签:RUN NAME APP idp 镜像 PATH DockerFile

DockerFile介绍

DockeFile是用来构建docker镜像的描述文件,命令参数的脚本。

构建步骤

1、编写一个 dockerfile 文件

2、docker build 构建成为一个镜像

3、docker run 运行镜像

4、docker push 发布镜像

DockerFile构建过程

基础知识:

1、每个保留关键字(指令)都是必须是大写字母

2、执行从上到下顺序执行

3、#表示注释

4、每一个指令都会创建提交一个新的镜像层,并提交!

image

Docker指令说明

image

FROM                         # 基础镜镜像,一切从这里开始构建

MAINTAINER                   # 镜像是谁写的,姓名+邮箱

RUN                          # 镜像构建的时候需要运行的命令

ADD                          # 步骤: tomcat镜像,这个tomcat压缩包! 添加内容

WORKDIR                      # 镜像的工作目录

VOLUME                       # 挂载的目录

EXPOSE                       # 保留端口配置

CMD                          # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代

ENTRYPOINT                   # 指定这个容器启动的时候要运行的命令,可以追加命令

ONBUILD                      # 当构建一个被继承 DockerFile 这个时候就会运行 ONBUILD 的指令。触发指令。

COPY                         # 类似ADD ,将我们文件拷贝到镜像中

ENV                          # 构建的时候设置环境变量 !

image

CMD和ENTRYPOINT 区别
cmd执行的命令不可以被追加,以第一个为准,entrypoint执行的命令可以追加命令

DockerFile实例

########### 以下以Java生态springboot应用为例 ############

# 设置基础镜像

FROM  artifacthub.XXX.work/idp-hub/uniontechos-server-20-1050u2a-amd64:2.0.2 as builder

#非root用户启动需要指定用户和组的ID,方便在initContainers里面进行处理

ARG user=ahyth

ARG group=appuser

ARG uid=1000

ARG gid=1000

#根据maven插件传参而来,为避免忘记传参报错,此处设置默认值demo

ARG APP_NAME

ENV APP_NAME=${APP_NAME}

#新建ahyth普通用户并切换为ahyth

#RUN bash -c 'groupadd -r appuser && useradd -r -g appuser ahyth'

RUN groupadd -r $group -g $gid && useradd -r -g $group -u $uid $user


ADD ${APP_CONTEXT_PATH}target/${APP_NAME}-package.tar.gz  /idp/service


RUN        mkdir -p /idp/logs/XXX


# 设置工作目录

ENV WORK_PATH=/idp/service/${APP_NAME} \

    CONFIG_PATH=/idp/service/${APP_NAME}/config \

    DATA_PATH=/idp/service/${APP_NAME}/data \

    SCRIPT_PATH=/idp/service/${APP_NAME}/bin \

    LOG_PATH=/idp/logs/yth-dm-directory-catalog-web \

    JAR_NAME=${APP_NAME} \

    LAUNCHER_OPTS="-Djavax.net.ssl.trustStore=/idp/public/jdk-17.0.2/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=ahythidp" \

    JAVA_OPTS="-server"

ENV JAVA_OPT="-Dlog.path=$LOG_PATH -Dlogging.config=$CONFIG_PATH/logback-spring.xml -Dspring.config.location=$CONFIG_PATH/bootstrap.yml "


# 创建及设置工作目录

WORKDIR $WORK_PATH

RUN chown -R $user:$group /idp && chmod -R 755 /idp

RUN chown -R $user:$group /home && chmod -R 755 /home

USER $user 

# 容器启动时的默认命令
ENTRYPOINT [ "/bin/bash", "-c", "java -jar $JAVA_OPT $JAVA_OPTS $JAR_NAME.jar $LAUNCHER_OPTS " ]

标签:RUN,NAME,APP,idp,镜像,PATH,DockerFile
From: https://www.cnblogs.com/jishuwu/p/18205766

相关文章

  • python sftp文件上传和Dockerfile部署步骤
    ##1、脚本app.py#-*-coding:utf8-*-importosimportparamikofromdatetimeimportdatetime,timedeltafromflaskimportFlask,requestapp=Flask(__name__)#从环境变量中获取配置信息host=os.getenv("SFTP_HOST")port=int(os.getenv("SFTP_PORT&q......
  • Dockerfile - build zgrpc-go-professionals:client
     FROM--platform=$BUILDPLATFORMalpineasprotocARGBUILDPLATFORM=linux/amd64TARGETOS=linuxTARGETARCH=amd64#downloadtheprotocbinaryfromgithub#Weunzipthefileinto/usr/local.Noticethatweareextractingboththeprotoc#binary(/bin/pr......
  • Dockerfile - build zgrpc-go-professionals:server
     FROM--platform=$BUILDPLATFORMalpineasprotocARGBUILDPLATFORM=linux/amd64TARGETOS=linuxTARGETARCH=amd64#downloadtheprotocbinaryfromgithub#Weunzipthefileinto/usr/local.Noticethatweareextractingboththeprotoc#binary(/bin/pr......
  • DockerFile
    DockerFile解析: 是什么: dockerfile是用来构建docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。独立于dockerbuild创建成docker镜像 官网:http://docs.docker.com/engine/reference/builder/ 构建三步骤: 1,编写dockerfile文......
  • docker的一些命令 以及dockerFile语法
    文件夹重新命名mvnode-v14.18.1-linux-x64node-v14.18.1dokcer命令 将linux的文件复制到docker容器里面       dockercp/usr/local/node-v14.18.1/8ec26052dfad:/usr/local/node-v14.18.1将docker容器里面的文件复制到linux       dockerc......
  • Docker04-dockerfile
    dockerfile概述dockerfile涉及执行代码、执行文件、环境变量、依赖包、运行时环境、动态链接库、操作系统发行版、服务进程、内核进程从应用软件的角度来看,三者分别代表软件的三个不同阶段dockerfile是软件的原材料docker镜像是软件的交付品docker容器是软件的运行态Dockerf......
  • 021Dockerfile相关
    一、dockerhistory镜像层文件确认方法#(1)问:如何查询dockerfile里的ADDfile:a0a9df396dd400a83cc437cba4830851b18457de79db5955704378c6d206b9a1in/usr/local/java/实际文件file后的id?ADDfile:a0a9df396dd400a83cc437cba4830851b18457de79db5955704378c6d206b9a1i......
  • Dockerfile.oracle-注释学习
    innovation/Dockerfile.oracle##NOTE:THISDOCKERFILEISGENERATEDVIA"apply-templates.sh"##PLEASEDONOTEDITITDIRECTLY.##使用oraclelinux:8-slim基础镜像FROMoraclelinux:8-slim#set-eux也就是以调试的方式执行shell,只识别定义过的变量,同时脚......
  • Dockerfile
     FROM--platform=$BUILDPLATFORMalpineasprotocARGBUILDPLATFORM=linux/amd64TARGETOS=linuxTARGETARCH=amd64#downloadtheprotocbinaryfromgithub#Weunzipthefileinto/usr/local.Noticethatweareextractingboththeprotoc#binary(/bin/pr......
  • DockerFile
    FROMcentos:7MAINTAINERzhangsan<123456@qq.com>ENVMYPATH/usr/localWORKDIR$MYPATHRUNyum-yinstallvimRUNyum-yinstallnet-toolsEXPOSE80CMDecho$MYPATHCMDecho"----end----"CMD/bin/bashDockerFile文件教学连接单阶段构建例子FROM......