golang to docker


本文摘自网络,作者,侵删。

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属于解释型语言么

Golang 如何运行

slice

Go dumpling! 让导出数据更稳定

Golang 如何处理死锁

Golang的zap日志库的简单封装

Go语言入门-1 环境搭建

Go - 实现项目内链路追踪(二)

怎么运行Go语言程序

排序算法 (桶、冒泡、快速)

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...