PS:自行安装 Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Vs Code 快速创建 Dockerfile 文件:
1:F1 或 Ctrl+Shift+P(俗称万能键) :打开命令面板
2:输入docker: Add Docker Files to Workspace,回车:端口号自定义
3:替换 Dockerfile 文件内容:
FROM golang as build
ENV GOPROXY=https://goproxy.io
ADD . /appback
WORKDIR /appback
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o main
FROM alpine:3.7
RUN echo "http://mirrors.aliyun.com/alpine/v3.7/main/" > /etc/apk/repositories && \
apk update && \
apk add ca-certificates && \
echo "hosts: files dns" > /etc/nsswitch.conf && \
mkdir -p /www/conf
WORKDIR /www
COPY --from=build /appback/main /usr/bin/main
ADD ./conf /www/conf
RUN chmod +x /usr/bin/main
ENTRYPOINT ["main"]
本地镜像构建及上传阿里云容器
1.登录阿里云 Docker Registry
docker login --username=XX registry.cn-shenzhen.aliyuncs.com
2.构建本地镜像
docker build -t registry.cn-shenzhen.aliyuncs.com/biubiugo/app_back:[镜像版本号] ./
3.推送本地镜像到阿里云
docker push registry.cn-shenzhen.aliyuncs.com/biubiugo/app_back:[镜像版本号]
4.推送完成,可前往阿里云容器镜像服务中看到推送镜像信息
5.服务器上自行安装 docker
6.安装 portainer(docker UI):确保 9000 端口开启,或者自定义端口
docker volume create portainer_data
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
7.注册并登录 portainer:http://ip:9000/#!/a
8.添加 stacks,项目配置如下,每次重新构建版本后,只需要把版本号替换重启就好:
version: "2"
services:
app_back:
image: registry.cn-shenzhen.aliyuncs.com/biubiugo/app_back:v1.0.5
restart: always
ports:
- 9003:9003
到此基本可以成功跑起来了
有疑问加站长微信联系(非本文作者)