golang to docker

出逃酱er · · 675 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

到此基本可以成功跑起来了


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:出逃酱er

查看原文:golang to docker

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

675 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传