Dockerfile
IDEA Configurations
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"]
你应当热爱自由!
作者:Leejk,转载请注明原文链接:https://www.cnblogs.com/leejk/p/16934287.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)