Dokerfile的常见用法和踩过的坑

本文记录了Dockerfile的常用指令,包括FROM、LABEL、ENV、RUN、COPY、WORKDIR和CMD,以及在构建镜像过程中可能遇到的问题和解决策略,旨在帮助读者更好地理解和应用Dockerfile。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 开始之前

Dockerfile 作为一个规则文件可以方便镜像的构建,便于版本管理,工作中有用到打镜像,这里根据自己写的一个Dokefile脚本,记录下工作中Dockerfile常用的语法和一些常见的坑。

1 使用

1.1 FROM

一般用作引入基础镜像。

FROM csighub.tencentyun.com/xxx/xxx

1.2 LABEL

主要是对版本的说明。

LABEL For GameCommunity Golang CI

1.3 ENV

环境变量相关。

ENV GOPATH=/root/go \
    LANG=zh_CN.UTF-8 \
    LANGUAGE=zh_CN:zh \
    LC_ALL=zh_CN.UTF-8

1.4 RUN

主要是包含一些在镜像机的执行命令(具体命令类型由CMD决定)。

RUN mkdir -p /data/home/user00 && \
    useradd -Ms /bin/bash -d /data/home/user00 -g users user00 && \
    chown -R user00:users /data/home/user00 && \
    mkdir -p /data/rail && \
    chown -R user00:users /data/rail && \
    git clone https://github.com/protocolbuffers/protobuf.git --recurse && \
    cd protobuf/ && \
    ./autogen.sh && \
    ./configure && \
    make -j16 && \
    make install && \
    ldconfig && \
    cd ~ && \
    go get github.com/golang/protobuf/protoc-gen-go && \
    mv $GOPATH/bin/protoc-gen-go /usr/bin

1.5 COPY

拷贝本机文件(只能找到相对于Dockerfile所在目录的路径)至镜像。 

COPY go/bin/protoc-gen-trpc /usr/bin/

1.6 WORKDIR 

登录镜像后的目录。

WORKDIR /data/home/user00

1.7 CMD 

设置解析RUN命令的解析器。

CMD ["/bin/bash"]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值