首页 > 其他分享 >Dockerfile

Dockerfile

时间:2022-11-29 01:22:46浏览次数:30  
标签:RUN demo usr go COPY Dockerfile

Dockerfile

FROM:指定基础镜像

WORKDIR:指定工作目录,不存在则自动创建

COPY:将源路径的文件复制到镜像目标路径,类似的有ADD命令

ENV:用来设置编译阶段需要的环境变量

RUN:执行命令行

EXPOSE:声明运行时容器提供服务端口

这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处:1、帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;2、运行时使用随机端口映射时,也就是 docker run -P 时,会自动随机映射 EXPOSE 的端口。

ENTRYPOINT:一旦从镜像中创建容器,Entrypoint就会在容器内运行该命令。

在Dockerfile中只能有一条Entrypoint指令。如果使用了多个Entrypoint指令,则只执行最后一条。

举例:

FROM alpine:3.12 AS builder

ADD go1.19.1.linux-amd64.tar.gz /usr/local/
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2 && \
    ln -s /usr/local/go/bin/go /usr/bin/go && ln -s /usr/local/go/bin/gofmt /usr/bin/gofmt

ENV GO111MODULE=on\
    GOPROXY="https://goproxy.io"

RUN mkdir /app
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
RUN GOOS=linux CGO_ENABLED=0 go build -o demo

FROM scratch as demo
COPY ./config/application.yml /config/
COPY --from=builder /app /

EXPOSE 8888
ENTRYPOINT ["/demo"]

预先打包,如Java

FROM openjdk:8u292-slim-buster
ADD ./target/demo-1.0-SNAPSHOT.jar /demo.jar
EXPOSE 8999
ENTRYPOINT ["java","-jar","/demo.jar"]

当然,go可以预先打包成二进制文件再使用dockerfile

标签:RUN,demo,usr,go,COPY,Dockerfile
From: https://www.cnblogs.com/leejk/p/16934287.html

相关文章

  • 高效率编写Dockerfile
    前言在日常的开发和运维中,我们时长会使用Dockerfile脚本制作镜像。其实编写一个Dockerfile文件用到的标签并不会太多,但是不同的Dockerfile在制作后产生的镜像大小是不尽相......
  • 二. Dockerfile构建镜像参数详解、Docker镜像分层构建案例 -1
    镜像简介: docker镜像基于unionfilesystem将多个目录合并挂载至一个目录给容器使用。docker镜像只有rootfs而没有内核、运行使用的是宿主机的bootfs。  rootfs(root......
  • Dockerfile配合IDEA实现一键部署
    1.1Dokcker开启远程访问1.1.0修改docker服务的配置文件vim/lib/systemd/system/docker.service1在ExecStart那行,加上-Htcp://0.0.0.0:2375代表任何ip都可以访问重新加......
  • 一文说清楚Dockerfile 中VOLUME到底有什么用?
    一文说清楚Dockerfile中VOLUME到底有什么用?原创2021-10-2500:25:2125点赞https://blog.csdn.net/qq32933432/article/details/120944205诺浅码龄11年关注写在开头相......
  • DockerFile解析-笔记-全
    是什么DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。构建三步骤:   编写dockerfile文件   dockerbuild   dockerrun文件什么......
  • 云原生学习笔记-2-dockerfile
    0:删除技巧dockerrmi$(dockerls-q)#删除所有镜像dockerrm$(dockerps-aq)#删除所有容器1、ARG[root@Masterdockerfile]#dockerbuild--no-cache--bu......
  • Dockerfile 详解
    Dockerfile详解 认识Dockerfile1、镜像的生成路径基于容器制作dockerfile,dockerbuild 2、Dockerfile介绍   镜像的定制实际上就是定制每一层所......
  • dockerfile中ENTRYPOINT与CMD的结合
    一、写在前面我们在上篇小作文docker容器dockerfile详解对中dockerfile有了比较全面的认识,我们也提到ENTRYPOINT和CMD都可以指定容器启动命令。因为这两个命令是掌握docke......
  • 使用 Dockerfile 自定义 Nginx 镜像
    一般来说,自定义Nginx只需要把静态文件放到镜像里就可以了,不需要重写CMD与ENTRYPOINT。但是,如果的确需要在Nginx启动前执行一些操作,就需要重写CMD了,如果写成下边就样......
  • 基于dockerfile构建镜像
    百度网盘链接:https://pan.baidu.com/s/15t_TSH5RRpCFXV-93JHpNw?pwd=8od3 提取码:8od34基于dockerfile构建镜像4.1dockerfile语法详解Dockerfile是一个用来构建镜像......