首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Docker-Compose -随机网络名称

Docker-Compose -随机网络名称
EN

Stack Overflow用户
提问于 2018-12-21 18:05:11
回答 1查看 1.4K关注 0票数 1

我有一个项目,其中有3个容器,将由我们的Jenkins构建系统运行。我已经让这3个容器可以相互通信了,现在我需要弄清楚是否正在进行同步构建,我该如何在docker-compose中使用某种类型的UUID或随机生成的网络名称?我需要这样做,这样它们的容器才不会意外地与来自不同构建的其他类似名称的容器对话。

有没有办法在docker-compose文件中创建一个随机生成的名字?

EN

回答 1

Stack Overflow用户

发布于 2018-12-22 17:13:56

假设您的CI从git中签出您的源代码,您可以使用git-commit作为您的容器/图像/网络的唯一标识符;

代码语言:javascript
运行
AI代码解释
复制
# get the sha of the commit that you're building from
export GIT_COMMIT=$(git rev-parse --short HEAD)

# build your image
docker build -t myimage:git-${GIT_COMMIT} .

# create your network
docker network create nw_${GIT_COMMIT}

# start your container
docker run -d --network=nw_${GIT_COMMIT} --name=foo_${GIT_COMMIT} myimage:git-${GIT_COMMIT}

使用docker compose

根据当前的git-commit设置项目名称;设置COMPOSE_PROJECT_NAME环境变量将覆盖默认的项目名称(基于当前目录的名称)。还要设置一个GIT_COMMIT环境变量,以便可以单独使用它。

代码语言:javascript
运行
AI代码解释
复制
export COMPOSE_PROJECT_NAME=myproject_$(git rev-parse --short HEAD)
export GIT_COMMIT=$(git rev-parse --short HEAD)

创建docker-compose.ymlDockerfile

代码语言:javascript
运行
AI代码解释
复制
version: "3.7"
services:
  web:
    build:
      context: .
      args:
          GIT_COMMIT:
    image: myproject/web:${GIT_COMMIT:-unknown}

Dockerfile:

代码语言:javascript
运行
AI代码解释
复制
FROM nginx:alpine
ARG GIT_COMMIT=unknown
RUN echo "This is build ${GIT_COMMIT}" > /usr/share/nginx/html/index.html

在运行之前清理所有内容(同一项目的其他实例;较早版本的映像、卷);

代码语言:javascript
运行
AI代码解释
复制
docker-compose down --rmi=all --volumes --remove-orphans

Stopping myproject_a9f48b5_web_1 ... done
Removing myproject_a9f48b5_web_1 ... done
Removing network myproject_a9f48b5_default
Removing image myproject/web:a9f48b5

构建服务的映像

代码语言:javascript
运行
AI代码解释
复制
docker-compose build

Building web
Step 1/3 : FROM nginx:alpine
 ---> 315798907716
Step 2/3 : ARG GIT_COMMIT=unknown
 ---> Running in 78515fcdd331
Removing intermediate container 78515fcdd331
 ---> bb2414522a62
Step 3/3 : RUN echo "This is build ${GIT_COMMIT}" > /usr/share/nginx/html/index.html
 ---> Running in 9bf1f2023915
Removing intermediate container 9bf1f2023915
 ---> 3debb1a96b63

Successfully built 3debb1a96b63
Successfully tagged myproject/web:a9f48b5

开始你的堆栈;

代码语言:javascript
运行
AI代码解释
复制
docker-compose up -d
Creating network "myproject_a9f48b5_default" with the default driver
Creating myproject_a9f48b5_web_1 ... done

查找分配给web服务的随机端口;

代码语言:javascript
运行
AI代码解释
复制
docker-compose port web 80
0.0.0.0:32770

并连接到它:

代码语言:javascript
运行
AI代码解释
复制
curl localhost:32770
This is build a9f48b5
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53889105

复制
相关文章
silverlight中的几个冷门标记 {x:Null},d:DesignWidth,d:DesignHeight
{x:Null}:用于设置某属性值为Null,比如<Rectangle Fill="{x:Null}" />,其实就相当于<Rectangle />,个人感觉这个纯属MS的多余设计 另外要注意一个问题: <Rectangle x:Name="rect" Stroke="Black" Width="90" Height="90" MouseLeftButtonUp="Rectangle_MouseLeftButtonUp" StrokeThickness="10" /> 运行时,如果点击矩形中间区域,会发现
菩提树下的杨过
2018/01/23
7130
【五线谱】踏板标记 ( 踩下踏板 Ped 标记 | 松开踏板 * 标记 | MIDI 中的对应踏板指令 | 连续控制信号 | 开关控制信号 )
在 MIDI 中 , 踏板控制信号是 控制信号 中的 cc64 号控制器 , 表示踏板控制器 ;
韩曙亮
2023/03/30
9060
【五线谱】踏板标记 ( 踩下踏板 Ped 标记 | 松开踏板 * 标记 | MIDI 中的对应踏板指令 | 连续控制信号 | 开关控制信号 )
第3章 排列清单控制标记
排列清单控制标记可以创建一般的列表、编号列表或加着重号列表,以及定义列表。还可以在一种列表中嵌套另外一种列表。对于概况因特网上的内容,列表特别重要。
py3study
2020/01/14
2870
silverlight:如何在后端代码中控制Behaviors
今天遇到一个需求,要求能对可拖动的对象提供二种模式:允许拖动、禁止拖动。 之前的拖动为了省事,直接用了:Blend自带的MouseDragElementBehavior,于是就需要在cs代码中控制这个东东了。 折腾了一下,还算简单: xaml代码 <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2
菩提树下的杨过
2018/01/24
5860
OpenCV基于标记控制的分水岭分割算法演示
图像分水岭分割是基于图像形态学的语义分割算法,常见的算法实现主要基于标记的分水岭分割方法,图示如下:
OpenCV学堂
2019/06/19
2.5K0
OpenCV基于标记控制的分水岭分割算法演示
Silverlight QQ
腾讯在MIX09上展示的Web版QQ 后来关了一阵 最近好像又打开了 有兴趣的可以试试
全栈程序员站长
2022/09/09
2.1K0
Silverlight中的帧
Silverlight是基于时间线的,不象Flash是基于帧的,所以在Silverlight中,很少看到有文档专门介绍SL中的帧。 但是我们从动画原理知道,动画只不过是一幅幅静态图片连续播放,利用人眼的视觉暂留形成的,因此任何动画从原理上讲,至少还是有每秒播放多少帧这个概念的。 Silverlight的sdk文档中,有一段话: ... maxFramerate 值可通过 Silverlight 插件对象的 maxframerate 参数进行配置。maxframerate 参数的默认值为 60。current
菩提树下的杨过
2018/01/23
1K0
Silverlight 中的 CoreCLR
Silverlight 2  包含一个 CLR,但并不是其他 .NET 应用程序和程序集使用的 CLR. Silverlight CLR 也称为 CoreCLR,在设计时充分考虑了不同用途。CoreCLR 专为跨平台互操作性而设计,可与 CLR 同时运行并支持不同的安全模型以及不同版本的基础类库。 CoreCLR 是 Silverlight 使用的虚拟机。它类似于为 .NET Framework 2.0 及更高版本提供强大功能的 CLR,也包含相似的类型加载和垃圾收集 (GC) 系统。 CoreCLR
张善友
2018/01/31
5160
丰富的silverlight控件
demo地址: http://demo.componentone.com/Silverlight/ControlExplorer/ 另外一个 微软示例站点. http://www.codeplex
用户1172164
2018/01/16
8380
丰富的silverlight控件
silverlight的独立存储
这个东西有点象Flash的Cookie,可以用来在客户端存储一些数据,我在官方文档上读到这个功能的第一反应就是:用它来做IM的客户端聊天记录存储太棒了,呵呵 这里把官方文档上的示例精减整理了一下,贴在这里纪念 先引用 using System.IO.IsolatedStorage; using System.IO; 下面的代码展示了,如何在存储区创建目录/文件,以及如何写入文件,读取文件 1try { using (var store = Isolate
菩提树下的杨过
2018/01/24
9180
更新Silverlight ctp到Silverlight beta 1.0
下面是我更新Silverlight ctp到Silverlight beta 1.0的一个纪录,希望对各位同学有帮助。 1、卸载Silverlight ctp 和sdk以及VS template 2、
张善友
2018/01/31
7220
Silverlight初级教程-建立silverlight项目
Silverlight初级教程 建立silverlight项目 首先在这里说明下,我是一个flasher同时我也做Asp.net编程,在这里我会以开发flash的思路来介绍如何开发silverlight。 建立silverlight项目一般可以用两个工具建立。blend和VS 2008。这两个工具建立的项目是可以通用的。不管用那一个建立的都能用另一个完美的打开。 用blend建立项目 用blend建立项目时有4个选项。第一是建立WPF程序的,第二个是建立WPF控件库的,第三个是建立silverligh
用户1172164
2018/02/28
8810
silverlight:telerik RadControls for Silverlight 主题使用心得
默认情况下: telerik RadControls控件使用的是Office Black 主题,就算在App.xaml.cs里写上
全栈程序员站长
2022/09/15
4160
silverlight:telerik RadControls for Silverlight 主题使用心得
Silverlight概要
原文: http://silverlight.net/GetStarted/overview.aspx Silverlight 运行时 目前,Silverlight有两个运行时可以让用户体验到Silverlight内容 Silverlight 1.0 Silverlight 2.0 beta 1 两个运行时都支持丰富的媒体功能,并可以提供快速、低成本和高品质的音频和视频,支持主要浏览器 包括Firefox,Safari 和Internet Explorer ,支持windows和Mac操作系统。设计者(d
张善友
2018/01/31
9450
Silverlight Cairngorm
Cairngorm这个词做过flex开发的朋友应该不会陌生,Cairngorm是Flex开发中的一个MVC框架,由Adobe官方提供支持。现在Silverlight也有了Cairngorm这个框架的实现。 项目地址:http://www.codeplex.com/SilverlightCairngorm 演示地址:http://www.hanray.com/sites/SilverlightCairngormThreadSafe/SilverlightCairngormDemoTestPage.html 做
用户1172164
2018/03/01
6280
microsoft silverlight
Microsoft Silverlight是一个跨浏览器的、跨平台的 插件,为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序。Silverlight提供灵活的编程模型,并可以很方便地集成到现有的网络应用程序中。Silverlight可以对运行在 Mac或 Windows上的主流浏览器提供高质量视频信息的快速、低成本的传递。
全栈程序员站长
2022/11/02
1.3K0
microsoft silverlight
SilverLight ColorTool
public class ColorTool     {         /// <summary>         /// 从ARGB转换         /// </summary>         /// <param name="color"></param>         /// <returns></returns>         public static SolidColorBrush FromArgb(string color)         {             int[]
MJ.Zhou
2022/05/07
3970
silverlight中用代码动态控制Storyboard(动画)属性的三种方法
先准备一个基本的xaml页面 1<navigation:Page 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:d="http://schemas.microsoft.com/expression/blend/2008
菩提树下的杨过
2018/01/23
5440
TheFWA上的silverlight酷站
FWA全称Favourite Website Awards,是一个世界著名的互动多媒体网站收录平台,于2000年5月建立,目的是展示世界上最优秀、最前沿的网络媒体艺术设计作品。FWA一直被列为世界上最顶级、最具有精英意义的评价网络媒体交互艺术创作的权威机构,其收录的作品也不断成为备受追捧的创意科技标杆。  
用户1172164
2018/07/31
3590
TheFWA上的silverlight酷站
Silverlight CreateObjectEx 参考
做 Silverlight 开发难免要动态在页面中创建 Silverlight 控件, 需要用到 Silverlight.js 文件中的 CreateObject 或 CreateObjectEx 函数, 一下是 Silverlight.js 文件中的 CreateObjectEx 函数支持的所有参数及其描述, 仅供参考:
beginor
2020/08/10
4820

相似问题

Silverlight MediaElement云

21

WinForms .NET 2.0+的标记云控制

20

参考Silverlight 4控制来自Silverlight 3

15

Azure云存储中的Silverlight XAP

11

Silverlight 4:图表控制

49
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档