1、打包
在dos窗口,cd到main.go所在目录,执行命令
set GOARCH=amd64
set GOOS=linux
go build main.go
#h或者
$Env:GOARCH="amd64";$Env:GOOS="linux"
打包后会生成一个main程序,假设叫 mes-pushgateway,linux下运行 ./mes-pushgateway
2、编写Dockerfile
FROM ubuntu:22.10
COPY mes-pushgateway /app/
WORKDIR /app/
ENTRYPOINT ["./mes-pushgateway"]
EXPOSE 8000
3、构建镜像
将push、Dockerfile放在一个目录下
[root@localhost docker]# docker build -t mep-pushgateway:sdmk .
Sending build context to Docker daemon 12.11MB
Step 1/5 : FROM ubuntu:22.10
---> 15a38249db7a
Step 2/5 : COPY mes-pushgateway /app/
---> 9b3c8f32cbbe
Step 3/5 : WORKDIR /app/
---> Running in 38dd858c9e38
Removing intermediate container 38dd858c9e38
---> 340ecd48db7f
Step 4/5 : ENTRYPOINT ["./mes-pushgateway"]
---> Running in 6d6d8ad4c5bc
Removing intermediate container 6d6d8ad4c5bc
---> 30995b0d7094
Step 5/5 : EXPOSE 8000
---> Running in d8ff0bbebfc4
Removing intermediate container d8ff0bbebfc4
---> ed76634ffba5
Successfully built ed76634ffba5
Successfully tagged mep-pushgateway:sdmk
4、启动
[root@localhost docker]# docker run --name mep-pushgateway -d -p 8000:8000 mep-pushgateway:sdmk
d39535e25e52225e11553695dbfaf5bc5c0c702590a88212950802f7047155c8
[root@localhost docker]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d39535e25e52 mep-pushgateway:sdmk "./mes-pushgateway" 3 seconds ago Up 3 seconds 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp mep-pushgateway