我有这个CircleCI配置。
<input id="uNameInput" class="choosename" type="text" maxlength="12" minlength="4" placeholder="username" required>
<input onclick="generate()" id="gen-button" class="modern" type="button" value="Generate usename"</input>
我正在寻找一种方法,允许我的新容器访问elasticsearch端口9200。使用这种配置,elasticsearch甚至都不是已知的主机名。
version: 2
jobs:
build:
docker:
- image: docker:18.09.2-git
- image: docker.elastic.co/elasticsearch/elasticsearch:6.6.0
name: elasticsearch
working_directory: ~/project
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run:
name: test
command: |
docker run --rm \
--network host \
byrnedo/alpine-curl \
elasticsearch:9200
我该怎么办?
答案 0 :(得分:1)
那是行不通的。通过docker run
命令在构建过程中启动的容器正在通过远程Docker引擎运行。因为它们是隔离的,所以它们无法通过TCP与作为执行程序一部分运行的容器通信。只是docker exec
。
该解决方案最终将取决于您的最终目标,但是一个选择可能是从执行程序中删除Elasticsearch映像/容器,并使用Docker Compose来使两个映像在构建过程中彼此对话。