1
我是新来泊坞窗,所以也许这是一个基本的问题,但我并没有为它找到一个合适的回答。多克尔 - 撰写:获取链接容器内ADRESS其他容器中(在bash)
我想进去start.sh
脚本弹性搜索ADRESS的环境变量。什么是不是侵入性地做到这一点的正确方法,而不是对它进行硬编码?
码头工人组成:
version: "2"
services:
#elasticsearch
elasticsearch:
container_name: es
volumes:
- ./elasticsearch:/usr/share/elasticsearch/data
extends:
file: ../../base-config-dev.yml
service: elasticsearch
es-sync:
container_name: app-es-sync
hostname: app-es-sync
extends:
file: ../../base-config-dev.yml
service: es-sync
links:
- elasticsearch
Dockerfile:
FROM python:3.4
MAINTAINER [email protected]
RUN pip install mongo-connector==2.4.1 elastic2-doc-manager
RUN mkdir /opt/es-sync
COPY files/* /opt/es-sync/
RUN chmod 755 /opt/es-sync/start.sh
CMD exec /opt/es-sync/start.sh
start.sh:
#!/bin/sh
cd /opt/es-sync/
export LANG=ru_RU.UTF-8
python3 create_index.py ${ES_URI}
CONNECTOR_CONFIG="\
-m ${MONGO_URI} \
-t ${ES_URI} \
--oplog-ts=oplog.timestamp \
--batch-size=1 \
--verbose \
--continue-on-error \
--stdout \
--namespace-set=foo.bar \
--doc-manager elastic2_doc_manager"
echo "CONNECTOR_CONFIG: $CONNECTOR_CONFIG"
exec mongo-connector ${CONNECTOR_CONFIG}
它是这么简单吗?编辑:我试图引用'ES_URI = http:// elasticsearch:9200'并获得'无法建立新的连接:[Errno 111]连接被拒绝从python脚本 – marknorkin
你确定elasticsearch正在端口上运行9200?请验证端口... – nwinkler
,并确定它的启动和运行,当你试图连接?另外网络是最好的联系,但得到它的第一个工作,我猜,在''../../base-config-dev.yml elasticsearch) – johnharris85