Tag: 微服务

如何部署Dockerized Java / Widlfly Swarm Fat Jar微服务+数据库

我对Docker非常陌生,我想让我的JEE(Wildfly Swarm)应用程序和我的PostgreSQL数据库dockerized。 它可以捆绑在同一个容器中,也可以分开,因为我不知道现在会更好。 我发现了一些使用fabric8io / docker-maven-plugin的 dockerize Wildfly Swarm应用相关的内容 ,但我不知道如何将数据库添加到这个图像。 谢谢

如何使用VSTS Build / Release将Docker容器不断集成/部署到Azure Service Fabric?

我在这里问这个问题是因为Azure的文档说Linux容器的例子是“ 即将推出 ”的。 任何人都可以在本教程何时可用? 同时,我希望有人能够说明如何有效地做到这一点。 我的用例是: 基于微服务的应用程序(比如微服务A,B和C); 每个微服务应该在它自己的Docker容器中运行 使用Visual Studio Team Services Buildfunction来构build容器映像并将其推送到Docker Hub 使用VSTS Releasefunction将微服务(容器) 单独部署到Service Fabric群集,因为微服务是独立开发的,也就是说,我不想更新Service Fabric中的整个应用程序,而只是将更改后的微服务/容器重新部署到各个节点 可以有一个自定义的解决scheme,可以将任务添加到VSTS中的构build和发布(如Docker构build和Shell脚本任务),调用一些脚本来更新应用程序清单和服务清单,以启动对服务结构集群等。

如何在kubernetes或docker集群中的不同应用程序之间进行networking隔离?

我们正在构build一个基于由k8spipe理的微服务的平台,每个用户都可以基于不同的微服务构build应用程序。 如何为不同的应用程序隔离,以避免它们之间的危害有效,是networking隔离还是更好的解决scheme?

无法在Docker容器上安装mysql-server

我使用docker的seneca微服务。 现在,当我试图用Dockerfile创build一个映像并尝试安装mysql-server时,它会挂起,如果我手动尝试在docker容器中安装mysql-server它的获取由服务安装mysql启动失败,每次。 请帮忙。

dockerize错误不是目录

以下命令在OSX上给出错误。 任何想法,为什么这是行不通的? 蝙蝠侠:demo davinci $ dockerize -t demo –cmd / demo –add-file /Users/davinci/src/demo/.build/demo / demo Traceback(最近调用最后一个):在load_entry_point('dockerize == 0.2.2','console_scripts','dockerize')()中,第11行的文件“/ usr / local / bin / dockerize” 文件“/usr/local/lib/python2.7/site-packages/dockerize/main.py”,行125,在主app.build() 文件“/usr/local/lib/python2.7/site-packages/dockerize/dockerize.py”,第122行,在build self.resolve_deps() 文件“/usr/local/lib/python2.7/site-packages/dockerize/dockerize.py”,第200行,位于resolve_deps deps.add(path) 文件“/usr/local/lib/python2.7/site-packages/dockerize/depsolver.py”,第110行,添加self.get_deps(path) 文件“/usr/local/lib/python2.7/site-packages/dockerize/depsolver.py”,第81行,在get_deps elf = ELFFile(path) 文件“/usr/local/lib/python2.7/site-packages/dockerize/depsolver.py”,第36行,在init self.read_sections() 文件“/usr/local/lib/python2.7/site-packages/dockerize/depsolver.py”,第42行,在read_sections中stderr = subprocess.STDOUT) 文件“/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第212行,在check_output process = Popen(stdout = PIPE,* popenargs,** kwargs) 文件“/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,390行,在初始化 errread,错误) 文件“/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,1024行,在_execute_child中raise child_exception OSError:[Errno 20]不是目录

微服务API网关模式如何与自动水平缩放一起工作?

如果我想有一个高可用解决scheme。 所以,我会在不同的数据中心有两个API网关。 每个API网关连接到三个微型服务,如计费,用户和帐户服务。 每个人有三个副本。 那么对于一个微服务来说,这是真的有6个副本,如果没有。 它是如何工作的?

如何使其他微服务知道服务注册的领事的IP地址

我目前正在dockerizing一个微服务应用程序,并使用Consul进行服务发现。 因此,所有的服务都向领事登记,并从领事处获得环境variables。 未解锁的微服务应用程序的启动脚本从用户处取得Consul ip:port,并将其转发给所有其他微服务。 但是,如何为dockerized微服务应用程序复制相同的每个容器是独立的。 而且,所有的服务都需要向领事注册,但他们没有领事。 我可以在每个所需的微服务应用程序中对consul ip:port进行硬编码,但是我不认为这是一个很好的方法。 那么你有什么想法如何使其他服务意识到领事IP? 任何帮助表示赞赏。

如何在进程启动后执行docker命令

我写了一个服务的Dockerfile(我有一个CMD指向启动进程的脚本),但是在进程启动后我不能运行任何其他命令? 我尝试使用'&'在后台运行进程,以便其他命令在进程启动后运行,但不工作? 任何想法如何实现这一目标? 例如,考虑我启动了一个数据库服务器,并希望在数据库进程启动后才运行一些脚本,我该怎么做? 编辑1: 我的具体用例是我运行一个Rabbitmq服务器作为服务,我想创build一个新的用户,让他的pipe理员,并删除默认来宾用户一旦服务在容器中启动。 我可以通过logindocker容器手动完成,但我想通过将它们附加到启动rabbitmq服务的shell脚本来实现自动化,但是这不起作用。 任何帮助表示赞赏! 问候

使用Filebeat(或其他选项)将docker GELF转发到Logstash

Gelf消息是所有Jsonstring的子集。 我如何使用filebeat(或其他select)作为轻量级的解决scheme来将docker gelf日志可靠地转发到logstash? 更多信息: 我有一个群集(现在的docker群)在相同的networking运行docker集装箱的机器。 我想使用–log-driver = gelf,因为我喜欢gelf格式,并希望docker添加到每个GELF日志条目中的字段。 不幸的是docker工人用UDP发送GELF日志,我害怕丢失日志条目。 要么是因为包丢失,logstashclosures,或者logstash的负载过重。 我不想在每个主机上运行logstash,因为它是一个重量级的。

Consul-Agent架构..升级到0.8.1后的node-id问题 – 概念问题?

我不知道我的问题的根源究竟在哪里,所以我试图解释更大的图片。 简而言之,症状:将代理从0.7.3升级到0.8.1后,我的代理(下面解释)由于公布的节点ID(为什么可能发生,下面解释),不能再连接到群集领导。 我既不能解决它与https://www.consul.io/docs/agent/options.html#_disable_host_node_id也不完全理解,为什么我遇到这个..那是更大的图片,甚至可能是不同的问题来自哪里。 我有以下设置: 我运行一个应用程序堆栈约8个容器为不同的服务(不同的micoservices,数据库types等)。 我使用一个单一的领事服务器每个堆栈(是的领事服务器运行在软件堆栈,它有其原因,因为我需要这是离线可部署的,每个堆栈生活本身) 领事服务器确实处理注册,服务发现以及KV /configuration 重要/可疑:每个容器都有一个以“consul agent -config-dir /etc/consul.d”开头的consul代理。连接这个服务器。 configuration看起来像这样..包括其他文件与他们encryption令牌/ acl令牌。 不要怀疑servicename()..它在图像构build时被一个m4macros所取代 客户端由八卦键和ACL键保护 重要提示:所有容器都在同一个硬件节点上 服务器configuration看起来像这样,如果有的话。 另外,ACL看起来像这样,一个ACL-master和client token / gossip json文件在这个configuration文件夹中 对不起,这可能是TLTR上面,但所有解释背后的原因是,这个多代理设置(或每个容器1代理)。 我的理由是: 我使用tiller来configuration容器,所以一个dimploy gem会尝试通常连接到localhost:8500 ..以表明,在不使consul-configuration非常复杂的情况下,我使用这个本地代理,然后将请求转发给实际的服务器从而处理所有的encryption密钥/ ACL否定的东西 我在服务器上使用了几个“consul watch”任务来触发重新configuration,他们也在localhost:8500上运行,没有任何额外的configuration 也就是说,我运行1代理/容器的原因是,只要通过127.0.0.1:8500(作为安全级别)连接,本地服务就可以简单地与后端对话,而不必真正了解身份validation, 最后的问题: 这个多领事代理人是否devise成这样使用? 我所要问的原因是,因为据我所知,当我开始一个0.8.1的时候,我得到的node-id重复问题来自于“主机”,因此所有的consul-agent的硬件节点是相同的。 。 对? 我的devise是错误的,还是需要从现在开始生成我自己的node-id?