企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 构建镜像 > 构建Golang编译环境 ## 使用容器创建镜像 * 创建并运行一个容器(基于ubuntu:14.04镜像) ``` shell $ sudo docker run --name golang -it ubuntu:14.04 /bin/bash ``` * 安装Golang编译器 ``` shell $ apt-get update $ apt-get install -y golang # 清除apt缓存 $ rm -rf /var/lib/apt/lists/* ``` * 配置Golang编译环境 ``` shell $ mkdir /gopath && cd /gopath && mkdir bin src $ export GOPATH=/gopath $ export PATH=$PATH:$GOPATH/bin ``` * 构建Golang镜像 ``` shell # Usage docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] $ docker commit -m 'Golang compiler.' golang golang:test ``` ## 使用Dockerfile构建镜像 > 以上述操作为例,介绍一些常用指令,具体了解可参考附录A * Dockerfile指令 ``` Dockerfile # 基础镜像 # Usage: FROM image:tag FROM ubuntu:14.04 # 指定维护者信息 # Usage: MAINTAINER name MAINTAINER tiannianshou@gmail.com # 在shell中运行命令 # Usage: RUN command RUN apt-get update && \ apt-get install -y golang && \ rm -rf /var/lib/apt/lists/* && \ mkdir -p /gopath # 指定环境变量 # Usage: ENV key value ENV GOPATH /gopath ENV PATH $GOPATH/bin:$PATH # 工作目录 # Usage: WORKDIR /path WORKDIR /gopath # 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等 # Usage: VOLUMES VOLUMES ["/gopath"] # 容器暴漏给外侧的端口号 # Usage: EXPOSE port [port...] EXPOSE 80 # 指定启动容器时执行的命令 # Usage: CMD ["executable","param1","param2"] CMD ["/bin/bash"] ``` * 构建镜像 ``` shell # 使用指定的Dockerfile创建镜像 # Usage: docker build [OPTIONS] PATH | URL | - # .表示当前目录 $ sudo docker build -t golang:1.2 . ```