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