跟着阿昌学习day1-【docker入门】代码打包运行

2 篇文章 0 订阅

        我们都知道docker有个好处就是可以把项目的环境跟代码一起打包然后到处运行,这样就避免了很多开发测试环境不一致导致的问题了,今天我们就来了解了解docker怎么打包环境和代码的

首先上一期我们通过

docker run -itd -p 19085:80 --name  -v ./:/go --privileged=true 1.18.9 /bin/bash

成功的将本地的环境运行起来了,接下来就是在本地开发,开发完成后就开始打包代码了

首先要编写Dockerfile文件

FROM golang:latest    #指定镜像,先默认使用dockerhub里的镜像

ENV GO111MODULE=on #设置环境变量
ENV GOPROXY=https://goproxy.io
ENV GOPATH /go
ENV PATH $PATH:$GOPATH/bin

RUN go get github.com/beego/beego/v2  #运行命令这里是在容器里安装指定框架
RUN go get github.com/beego/bee/v2
RUN go get github.com/alibabacloud-go/darabonba-openapi/client
RUN go get github.com/alibabacloud-go/dysmsapi-20170525/v2/client
RUN go get github.com/alibabacloud-go/tea/tea
RUN go get github.com/xuri/excelize/v2
RUN go get gorm.io/gorm

RUN mkdir -p /webapp 
ADD . /webapp #把宿主机的代码,拷贝到容器的/webapp 目录下
WORKDIR  /webapp  #容器内进行目录切换
EXPOSE 80		#打开容器的80端口,用于和宿主机进行映射
CMD cd /webapp && nohup bee run &  	#在容器启动后,内部自动执行的命令是什么 

写好Dockerfile后放在项目根目录,然后

docker build -t crm .  #-t 设置镜像名为crm . 当前目录

之后我们可以docker images看一下镜像是否生成了

生成了之后run一下就好了

Docker 是一个开源的应用容器引擎,允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。使用 Docker,可以更方便地构建、部署和运行应用程序。打包本地环境到 Docker 容器的基本步骤如下: 1. 创建 Dockerfile:Dockerfile 是一个文本文件,包含了一系列用于创建 Docker 镜像的指令。例如,可以在 Dockerfile 中指定基础镜像、安装必要的软件包、复制应用程序代码、设置环境变量等。 2. 构建镜像:在有了 Dockerfile 之后,可以使用 `docker build` 命令来创建 Docker 镜像。这个命令会读取 Dockerfile 中的指令,按照顺序执行,并最终生成一个镜像文件。 3. 运行容器:有了镜像之后,可以使用 `docker run` 命令来运行一个容器实例。这个命令会根据镜像启动一个容器,并且可以指定端口映射、卷挂载等参数,使得容器内的服务可以被外部访问。 4. 测试环境:运行容器后,需要测试容器内部环境是否与本地环境一致,确保应用程序可以正常运行。 例如,一个简单的 Dockerfile 可能包含以下指令: ```Dockerfile # 使用官方 Python 运行时作为父镜像 FROM python:3.8-slim # 将工作目录设置为 /app WORKDIR /app # 将当前目录内容复制到位于 /app 中的容器里 COPY . /app # 使用 pip 命令安装任何需要的依赖 RUN pip install --trusted-host pypi.python.org -r requirements.txt # 使端口 80 可供此容器外的环境使用 EXPOSE 80 # 定义环境变量 ENV NAME World # 在容器启动时运行 app.py CMD ["python", "app.py"] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值