【实战篇】docker-compose部署go项目

一、场景:

二、需求

三、实操

Stage 1:GoLand 中 build 生成二进制文件

Stage 2:编写 Dockerfile

Stage 3:编写 docker-compose.yaml

Stage 4:文件上传到 ubuntu 服务器上,并设置文件读写权限

Stage 5:运行 docker-compose

 Stage 6:查看运行效果

四、问题

A. docker + docker-compose 安装

B. 运行docker-compose后,进入go项目入容器报错 Permission denied


一、场景:

开发工具:GoLand 2023.1.4

go项目文件:qingdaoHJ212.go

服务器:ububtu 22

二、需求

        使用docker-compose部署qingdao.go

三、实操

Stage 1:GoLand 中 build 生成二进制文件

  • 生成 qingdaoHJ212

Stage 2:编写 Dockerfile

FROM alpine:3.12# 解决时区问题
RUN apk add --no-cache tzdataENV TZ Asia/ShanghaiCOPY qingdaoHJ212 .CMD ./qingdaoHJ212

Stage 3:编写 docker-compose.yaml

version: '3.1'services:qingdaohj212:image: qingdaohj212:v2container_name: qingdaohj212-newbuild: .restart: always

Stage 4:文件上传到 ubuntu 服务器上,并设置文件读写权限

# 进入目录
cd /mnt/docker/qingdaoHJ212-new/# 设置文件读写权限
chmod a+x qingdaoHJ212

Stage 5:运行 docker-compose

# 进入目录
cd /mnt/docker/qingdaoHJ212-new/# 运行编排文件
docker-compose up -d --build

 Stage 6:查看运行效果

  • docker ps 

四、问题

A. docker + docker-compose 安装

点击进入

B. 运行docker-compose后,进入go项目入容器报错 Permission denied

  • 原因go二进制文件【qingdaoHJ212】需要设置读写权限
  • 解决方案chmod a+x qingdaoHJ212

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/3004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端 | (二)各种各样的常用标签 | 尚硅谷前端html+css零基础教程2023最新

学习来源:尚硅谷前端htmlcss零基础教程,2023最新前端开发html5css3视频 文章目录 📚HTML排版标签📚HTML语义化标签📚块级元素与行内元素📚文本标签🐇常用的文本标签🐇不常用的文本标…

erlang 虚拟机优化参数

sbwt none 将CPU忙等待关闭将有助于降低系统显示的CPU使用率,因为开启了忙等待的BEAM,CPU负载并不代表真实的工作情况; K true 开启epoll IO模型 swt low Sets scheduler wakeup threshold. Defaults to medium. The thresh…

Kubernetes Service的过程

文章目录 Kubernetes Service的实现基础内容1. 命令 ip route show table all2. DNAT3. IPVS和iptables4. Service Service的实现简述 Kubernetes Service的实现 基础内容 在了解Service之前,需要先了解一些额外的知识: 命令: ip route show table allDNATIPVS和iptables基础…

idea不小心push的文件夹怎么处理?

第一种方式,把不小心push上去的人解决掉。 第二种方式,以我自身为例,同事不小心push了.idea文件夹 首先打开git bash git rm --cached .idea/ -r 然后查看一下状态 git status 接着提交修改 git commit -m "cancel track .idea file&q…

【Redis】高可用之三:集群(cluster)

本文是Redis系列第6篇,前5篇欢迎移步 【Redis】不卡壳的 Redis 学习之路:从十大数据类型开始入手_AQin1012的博客-CSDN博客关于Redis的数据类型,各个文章总有些小不同,我们这里讨论的是Redis 7.0,为确保准确&#xf…

linux编程-telnet

我是使用WSL的linux系统与主机windows系统进行通信。 1.安装telnet linux: 在终端中运行以下命令: sudo apt-get install telnet windows: 在命令行中运行以下命令: DISM /Online /Enable-Feature /FeatureName:TelnetClien…

【代码随想录刷题记录】 647. 回文子串 、 516.最长回文子序列

647. 回文子串 1、题目 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 题目链接:https://leetcode.cn/problems/palindromic-substrings/ 2、代码 class Solution { public: //判断字符串是否为回文bool IsPalindrome(string s, …

Linux基础(三)端口、进程及主机状态管理、环境变量、文件管理

目录 端口 nmap netstat 进程管理 查看进程 关闭进程 主机状态监控 系统资源top命令 磁盘信息监控 网络状态监控 环境变量 $符号 自己设置环境变量 自定义环境变量PATH Linux的文件和下载 压缩和解压 tar命令 zip和unzip命令 端口 每个电脑有一个ip地址&#xff…

Vue项目实现在线预览pdf,并且可以批量打印pdf

最近遇到一个需求,就是要在页面上呈现pdf内容,并且还能用打印机批量打印pdf,最终效果如下: 当用户在列表页面,勾选中两条数据后,点击“打印表单”按钮之后,会跳到如下的预览页面: 预览页面顶部有个吸顶的效果,然后下方就展示出了2个pdf文件对应的内容,我们接着点击“…

echarts 地图点击常见问题

echats 散点图不支持缩放 echarts 地图点击激活label如何去除 高德loca 1.4版本热力图报错 绘制的颜色区间是 0 --1 高德地图销毁不生效 自己傻逼,每次没有清空数组导致叠加数据,约点数据越多。 为何用高德地图district.search查询不到别的省数据&…

[微信小程序] movable-view 可移动视图容器 - 范围问题

movable-view 可移动视图容器 可移动视图容器&#xff0c;在页面中可以拖拽滑动。movable-view必须在 movable-area 组件中&#xff0c;并且必须是直接子节点 <view><movable-area style"width: 750rpx;height: 200rpx;background-color: gainsboro;">&l…

Java的数据结构-Map集合

文章目录 Map概述Map常用方法Map遍历元素的方法1.方法一&#xff1a;keySet()2.方法二&#xff1a;entrySet() HashMap Map概述 1、Map和collection没有继承关系2、Map集合以key和value的方式存储数据&#xff1a;键值对key和value都是引用数据类型。key和value都是存储对象的…

(栈队列堆) 剑指 Offer 31. 栈的压入、弹出序列 ——【Leetcode每日一题】

❓ 剑指 Offer 31. 栈的压入、弹出序列 难度&#xff1a;中等 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某栈的压栈序列&#xff0c;序…

Appium Android ——利用 TestNG 并行执行用例

目录 前言&#xff1a; 一、测试类 二、连接两个 Android 设备或启动两个虚拟机 三、项目路径下新建两个 testng.xml 四、开启两个 appium server 五、导出依赖 六、执行测试 七、查看报告 前言&#xff1a; Appium是一个流行的移动应用自动化测试工具&#xff0c;…

使用semanage管理SELinux安全策略

semanage命令用于管理SELinux的策略&#xff0c;格式为“semanage [选项] [文件]”。 SELinux服务极大地提升了Linux系统的安全性&#xff0c;将用户权限牢牢地锁在笼子里。semanage命令可以设置文件、目录的策略&#xff0c;还可以管理网络端口、消息接口。 常用参数&#xf…

vue3+vite配置 unplugin-vue-component 找不到 Vant 组件的问题

使用 vue3 vite Vant 搭建移动端项目&#xff0c;为了避免全量引入 vant 导致打包体积过大&#xff0c;又不想一个一个组件手动导入&#xff0c;所以就选择了 vant 官方推荐的方法&#xff0c;使用 unplugin-vue-components 插件自动引入组件&#xff0c;并按需引入组件的样式…

Qgis3.16ltr+VS2017二次开发环境搭建(保姆级教程)

1.二次开发环境搭建 下载osgeo4w-setup.exeDownload QGIShttps://www.qgis.org/en/site/forusers/download.html 点击OSGeo4W Network Installer 点击下载 OSGeo4W Installer 运行程序 osgeo4w-setup.exe&#xff0c;出现以下界面&#xff0c;点击下一页。 选中install from i…

详细讲解C++的可调用对象

详细讲解C的可调用对象 在C中&#xff0c;存在“可调用对象&#xff08;Callable Obiects&#xff09;这么一个概念。准确来说&#xff0c;可调用对象有如下几种定义&#xff1a; 是一个函数指针 是一个具有 operator() 成员函数的类对象&#xff08;仿函数&#xff09; 是一…

rollup打包js库 占位符替换成文件名和行号输出日志中定位报错位置

rollup 自定义插件进行代码替换 简易版问题&#xff1a;在打包的js库中有很多日志或者error的控制台输出&#xff0c;但是打包后的js调用报错后无法从控制台看到堆栈信息&#xff0c;无法定位报错的位置是在哪个文件的哪一行需求&#xff1a;能够从报错中观察到报错在哪个文件的…