Open gkzz opened 4 years ago
It may be a good idea to override built image of stackstorm depended on mongo db with "Extension fields" as I refered to this page, Compose file version 3 reference, however, the following error occured to me:
$ docker-compose -f docker-compose-dev.yml up -d
Creating st2-docker-gkz_redis_1 ... done
Creating st2-docker-gkz_postgres_1 ... done
Creating st2-docker-gkz_mongo_1 ... done
Creating st2-docker-gkz_rabbitmq_1 ... done
Creating st2hubot ...
Creating st2-docker-gkz_stackstorm_1 ... error
ERROR: for st2-docker-gkz_stackstorm_1 Cannot start service stackstorm: driver failed programming external connectivity on endpoint st2-docker-Creating st2hubot ... done1f69a6b98f): Bind for 0.0.0.0:443 failed: port is already allocated
ERROR: for stackstorm Cannot start service stackstorm: driver failed programming external connectivity on endpoint st2-docker-gkz_stackstorm_1 (b8390f26aaf8b68266cbc496a2d14a0c88617928c328f426273e6b1f69a6b98f): Bind for 0.0.0.0:443 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
What does it mean, "Bind for 0.0.0.0:443 failed: port is already allocated"? It is natural, because my image was extendded.
ERROR: for stackstorm Cannot start service stackstorm: driver failed programming external connectivity on endpoint st2-docker-gkz_stackstorm_1 (略): Bind for 0.0.0.0:443 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
My directory architecture is as bellow:
$ tree . -n 2 -d images/
.
├── bin
├── conf
├── docs
│ └── demo
├── images
│ └── stackstorm
│ ├── bin
│ │ └── sed-st2chatops-env.sh
│ └── config
├── runtime
│ ├── compose-1ppc
│ ├── entrypoint.d
│ └── st2.d
└── tutorial
├── actions
│ └── workflows
├── policies
└── rules
2 [error opening dir]
images/
└── stackstorm
├── bin
│ └── sed-st2chatops-env.sh
└── config
22 directories
Describe the problem By images/stackstorm/bin/entrypoint.sh , strings in container's files are not replaced with sed.
Versions
To Reproduce $ git clone https://github.com/gkzz/st2-docker-gkz.git $ git branch -r | grep dev-conf-env
$ git checkout dev-conf-env
Edit ~/.bashrc after adding Hubot to slack $ vi ~/.bashrc
$ source ~/.bashrc $ docker-compose -f docker-compose-dev.yml up -d
$ docker-compose exec stackstorm bash root@40c0e80dce83:/# cat /etc/os-release
sed and ENVIRONMENT VAR don't work root@40c0e80dce83/# cat /opt/stackstorm/chatops/st2chatops.env | grep ST2_API_KEY
root@40c0e80dce83:/# cat /opt/stackstorm/chatops/st2chatops.env | grep HUBOT_ADAPTER=slack
root@40c0e80dce83:/# cat /opt/stackstorm/chatops/st2chatops.env | grep HUBOT_SLACK_TOKEN
Four possible causes:
It was successful to make configuration in container as bellow, therefore some of sed commands or of environment variables are wrong. In my opinion, I cannot set commands or envrionment variables in images/stackstorm/bin/entorypoint.sh
$ sed -n -e 75p -e 76p -e 77p -e 78p -e 79p -e 80p -e 81p images/stackstorm/bin/entrypoint.sh
Set configuration values one by one in your container root@40c0e80dce83:/# export ST2_API_KEY=$(st2 apikey create -k -m '{"name": "'$YOURBOTNAME'"}'); \ >sed -i -e 's/export ST2_API_KEY=\"${ST2_API_KEY}\"/export ST2_API_KEY='"$ST2_API_KEY"'/' \ > -i -e 's/# export HUBOT_ADAPTER=slack/export HUBOT_ADAPTER=slack/' \ > -i -e 's/# export HUBOT_SLACK_TOKEN=xoxb-CHANGE-ME-PLEASE/export HUBOT_SLACK_TOKEN='"$HUBOT_SLACK_TOKEN"'/' \ > /opt/stackstorm/chatops/st2chatops.env root@40c0e80dce83:/# cat /opt/stackstorm/chatops/st2chatops.env | grep ST2_API_KEY
root@40c0e80dce83:/# cat /opt/stackstorm/chatops/st2chatops.env | grep HUBOT_ADAPTER=slack
root@40c0e80dce83:/# cat /opt/stackstorm/chatops/st2chatops.env | grep HUBOT_SLACK_TOKEN
Make st2chatops restarted! root@40c0e80dce83:/# st2ctl reload --register-all && service st2chatops restart | grep st2chatops
Q. How do you try again? A. Just execute docker-compose down -v After that, execute docker-compose -f docker-compose-dev.yml up -d $ docker-compose down -v