Tag: rest

在docker for rails应用程序rest-client中启用CORS

我有两个应用程序运行在不同的泊坞窗图像。 首先暴露在端口3000:3000和第二4000:4000。 第一个应用程序有一些资源,我想通过第二个应用程序使用rest-client获取。 docker集装箱可能是个问题。 这里有错误: Errno :: ECONNREFUSED在FilmsController#index中 无法打开TCP连接到本地主机:3000(连接被拒绝 – 连接(2)为“本地主机”端口3000) //第一个应用程序: 公开http:// localhost:3000 / movies上的资源 对其他networking开放 允许交叉来源请求 第一个应用程序的application.rb文件 module Movies class Application < Rails::Application config.web_console.whiny_requests = false config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', :headers => :any, :methods => [:get, :post, :options] end end end end //第二个应用程序: 在端口上运行:4000 有一个模型电影 一个控制器 电影模型: […]

如何从运行在Docker容器中的Confluence服务器启用/访问Confluence API

我正在运行一个使用官方Docker容器的Confluence服务器: atlassian/confluence-server : https : atlassian/confluence-server 我现在想要访问Confluence REST API: https : //docs.atlassian.com/atlassian-confluence/REST/latest-server/ 我看到容器暴露了2个端口: 8090和8091 。 我可以得到前者的Confluence UI。 后者应该是一个API端口? 我也检查了插件,如果我必须安装一个插件。 但我没有find任何东西。 也许我必须发送更多的variables或暴露更多的端口从docker命令?

Docker maven插件

我发现的Docker插件(spotify / docker-maven-plugin)使用本地docker应用程序,但据我所知, docker只是一个REST API客户端,它将命令“redirect”到docker守护进程。 如果我在Windows机器上使用docker,docker守护进程在VirtualBox的Linux上工作,情况更是如此。 那么,是否存在任何不需要本地docker应用程序的docker-maven-plugin,而只需与docker守护进程“交谈”而不需要任何中介?

Docker远程API不准确列出群集中的运行容器

目前我正面临以下问题: 我用debian和安装了docker设置了3个虚拟机器。 没有防火墙。 我创build了一个团队,使一台机器成为经理,并像无数个网页中描述的那样,将其他两个员工作为工人join。 完美的作品。 在swarmpipe理器上,我通过-H:4243激活了一个远程API访问,并重新启动了deamon。 (只在swarmpipe理器上)“docker node ls”限定所有活动的节点。 当我呼叫http://:4243 /节点时,我看到所有节点。 我创build了一个覆盖networking(很可能不需要说明我的问题,标准的Ingressnetworking应该也可以)然后我创build了一个3副本的服务。 指定一个名字,我的覆盖networking和一些env参数。 “docker服务PS”给我的信息,每个节点与我的形象运行一个容器。 在每个节点上用“docker ps”进行双重检查也是一样的。 我的问题是:调用'http://:4243 / containers / json'我只看到一个容器,一个在swarmpipe理器上。 我期望看到3个容器,每个节点一个。 问题是为什么? 有任何想法吗 ? 这个问题似乎不是我的问题

Spring启动应用程序,用CLI触发另一个应用程序

我目前正在开发一个通过CLI触发Python程序的Spring Boot应用程序。 我用Processbuilder来做到这一点,到目前为止它一直在运行。 现在我正试图在Docker容器中获取Spring Boot应用程序和Python程序。 由于我是新来的Docker,我不知道这样做的最好方法。 我已经尝试使用COPY复制整个文件夹来创build一个图像,但由于某种原因,容器中的文件夹pythonapp始终是空的。 我错过了什么或有没有更好的方法来做到这一点? FROM openjdk:8u151-jdk-slim EXPOSE 8080 ADD springbootapp-0.0.1.jar app.jar COPY . /root/pythonapp RUN sh -c 'touch /app.jar' RUN apt-get update && apt-get install -y python \ python-gi \ gir1.2-gtk-3.0 ENV JAVA_OPTS="" ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

在使用Go向本地主机服务器发送GET请求的同时空的响应

我有我的本地主机服务器运行,这是什么,但在docker的容器进程。我想实现一个Go CLIENT来build立REST API的创build,列表,更新,删除function。 当我尝试点击URL时,程序成功退出,但给了我一个空的答复。 此外,我观察到,响应types是“分块”,内容长度为-1。 我是Go新手,试图弄清楚可能的原因是什么,或者是否有人可以提供解决这个问题的方法。 这里是我的代码 – { package main import ( "encoding/json" "fmt" "io/ioutil" "net/http" ) type Payload struct { Stuff Data } type Data struct { Id string Links Links_container Actions Actions_container AccountID string AgentID string AllocationState string Compute string Created string } type Links_container map[string]string type Actions_container map[string]string func main() { […]

在Docker容器中访问主机上的MySQL数据库

我有一个在Dockers容器中运行的Spring Boot应用程序。 该应用程序提供REST端点,可以使用http:// localhost:8080 / endpoint从主机成功调用。 以前,当这个应用程序运行在主机上而不是在Dockers中时,我可以从应用程序中使用jdbc:mariadb:// localhost:3308 / fi?user = userName&password = thePassword调用本地MariaDB。 现在应用程序在Dockers中运行,连接返回错误:“无法连接到地址=(host = localhost)(port = 3308)(type = master):连接被拒绝(连接被拒绝)” 进行连接的代码片段如下所示: Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3308/fi?user=username&password=thePassword"); Statement stmt = connection.createStatement(); String query = ""; ResultSet rs = stmt.executeQuery("SELECT * ….;"); 我已经发布了8080端口来接受来自主机的REST调用,并试图发布或公开3308端口以允许进行数据库调用,而不提供帮助。 先谢谢你!

Docker容器在运行php代码后立即退出

我目前正在用Slim框架开发一个RESTful API,我试图在docker容器上运行它。 但是,问题是脚本只运行一次,而且会自动退出docker,退出代码为0,即它会捕获index.php页面的第一个http请求,返回并退出。 我敢肯定,必须有一种方法来在容器上运行apache,以便每当我在本地浏览器上对某个特定的URL(如localhost:8080 / api / something)发出请求时,这样apache服务器在容器中运行将处理这些请求。 不过,由于我以前没有任何Docker的经验,目前我无法解决这个问题。 这是我的Dockerfile: FROM php:7.0-cli COPY . /usr/src/my_app WORKDIR /usr/src/my_app/public CMD [ "php", "./index.php" ] 这是我的Docker-compose文件: version: '2' services: app: build: ./app volumes: – ./app:/usr/src/app ports: – 5001:80 有人可以告诉我如何更改我的Dockerfile或Docker-compose文件,以便Apache服务器在第一次请求后不会退出,但它仍然运行并侦听其他请求。 先谢谢你!

Docker化Flask API上的部分响应错误(长响应)

我有一个Flask API(Python 3.5),在我的本地设置中返回一个完整的响应。 目前,我已经docker化的应用程序,现在的应用程序运行在我的本地docker的容器。 我目前的问题是,当我发送相同的请求到泊坞窗容器内的相同的服务, 响应被截断 。 邮差只是停止工作,curl将返回CURL_PARTIAL_RESPONSE错误。 我的实际完整响应是> 6000000字节。 这是一个长期的回应。 但从docker我得到部分回应,它似乎被切断。 是否有一些环境variables或库,docker容器需要不要截断这个响应? 或者也许这是一些与烧瓶有关的财产? 我有本地相同的设置,并在本地设置响应不被截断。 我怀疑docker容器有一些设置,由于我回来的部分回应。 任何指针,这是赞赏。 DockerFile: FROM python:3.5 WORKDIR /worker_deploy ADD trainer /worker_deploy/ RUN pip install -r requirements.txt EXPOSE 80 EXPOSE 5000 ENTRYPOINT ["python","/service/run_docker_trainer.py"] requirements.txt有一些其他的库,但我只包括python和flask版本: Flask==0.12.2 Python 3.5.0 像这样启动容器: docker run -it -p 5000:5000 miracle (奇迹是我的docker形象,它开始于0.0.0.0:5000) 然后我发出一个POST请求127.0.0.1/test,我得到一个JSON 1.6MB的响应,我只接收部分输出,并说curl说curl连接closures(18)错误:CURL_PARTIAL_RESPONSE 我在烧瓶中的代码返回响应使用“jsonify”。 所以这不是stream式响应。 @flask_app.route('/train', methods=['POST']) def […]

开发者环境 – 如何调用/使用其他微服务

背景 我的环境 – Java,Play2,MySql 我在Play2 – > / S1,/ S2,/ S3上写了3个无状态的Restful Microservices S1消费来自S2和S3的数据。 所以当用户点击/ S1时,该服务asynchronous调用/ S2,/ S3,合并数据并返回最终的json输出。 附注 – 这些服务最终将作为docker图像发送。 为了在开发环境中进行testing,我分别在端口9000,9001和9002上运行/ s1,/ s2,/ s3。 我从configuration文件等取得端口号我打了服务,一切正常。 但有一个更好的方法来设置我的开发人员框中的testing环境是否正确? 示例 – 如果我想运行20个服务等等。 所以说,在生产,他们将被称为就像mydomain.com/s1,mydomain.com/s2,mydomain.com/s3等我想要在我的开发环境框中完成此….我想有一些反向代理涉及我会想象。 题 所以问题是,如何在S1中调用/ S2和/ S3,而无需在开发人员环境中指定或使用端口号。 人们如何在本地机器上testing微服务? 额外奖励 知道我将把我的服务作为docker图像发送,我如何用docker容器(每个容器运行一个服务)完成同样的事情