apache / apache/openwhisk-devtools

"make lean" make waits forever for controller which shows no logs with "docker logs"

オープン
#367 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
JavaScript
スター
181
フォーク
124
PR マージ指標
30日以内にマージされた PR はありません

説明

Hello,

I am trying to run Openwhisk locally on a remote Ubuntu server for testing and avoid using the standalone setup which does not allow external connections.
There are other containers running which use some of the ports setup in the docker-compose-lean.yml, so I had to edit some of them. Here is the final docker-compose-lean.yml:

```yaml
version: '3'
services:
db:
image: apache/couchdb:2.3
ports:
- "5985:5984"
environment:
COUCHDB_USER: whisk_admin
COUCHDB_PASSWORD: some_passw0rd
volumes:
- ~/tmp/openwhisk/couchdb:/usr/local/var/lib/couchdb:rw

# WHISK CONTROLLER
controller:
image: ${DOCKER_IMAGE_PREFIX:-openwhisk}/controller:${DOCKER_IMAGE_TAG:-latest}
command: /bin/sh -c "exec /init.sh 0 >> /logs/controller-local_logs.log 2>&1"
privileged: true
pid: "host"
userns_mode: "host"
links:
- db:db.docker
depends_on:
- db
env_file:
- ./docker-whisk-controller.env # env vars shared
- ~/tmp/openwhisk/local.env # generated during make setup
environment:
COMPONENT_NAME: controller
PORT: 8888

CONFIG_whisk_couchdb_provider: CouchDB
CONFIG_whisk_couchdb_protocol: http
CONFIG_whisk_couchdb_port: 5985
CONFIG_whisk_couchdb_host: db.docker
CONFIG_whisk_couchdb_username: whisk_admin
CONFIG_whisk_couchdb_password: some_passw0rd

CONFIG_akka_actor_provider: local

LOADBALANCER_HOST: ${DOCKER_COMPOSE_HOST}
LOADBALANCER_HOST_PORT: 8081

#invoker env
EDGE_HOST: ${DOCKER_COMPOSE_HOST}
EDGE_HOST_APIPORT: 8081
CONFIG_whisk_containerFactory_containerArgs_network: openwhisk_default
WHISK_API_HOST_NAME: ${DOCKER_COMPOSE_HOST}

#required by lean controller
CONFIG_whisk_spi_MessagingProvider: org.apache.openwhisk.connector.lean.LeanMessagingProvider
CONFIG_whisk_spi_LoadBalancerProvider: org.apache.openwhisk.core.loadBalancer.LeanBalancer
volumes:
- ~/tmp/openwhisk/controller/logs:/logs
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/containers:/containers
- /sys/fs/cgroup:/sys/fs/cgroup
ports:
- "8888:8888"
- "9222:9222"

# The API Gateway is currently used to expose the Controller API
# see apigateway/conf/whisk-docker-compose.conf
# Minio is used to mock an object storage ( i.e. S3) that hosts the api-gateway configuration.
# Minio also exposes a web UI to browse the files: http://localhost:9001/minio/api-gateway/
minio:
image: minio/minio:RELEASE.2018-07-13T00-09-07Z
command:
- server
- /data
environment:
- MINIO_ACCESS_KEY=5VCTEQOQ0GR0NV1T67GN
- MINIO_SECRET_KEY=8MBK5aJTR330V1sohz4n1i7W5Wv/jzahARNHUzi3
volumes:
- ~/tmp/openwhisk/minio:/data:rw
ports:
- "9001:9000"
redis:
image: redis:2.8
ports:
- "6379:6379"
apigateway:
image: openwhisk/apigateway:nightly
links:
- controller:whisk.controller
- redis:redis.docker
- minio:minio.docker
environment:
- REDIS_HOST=${DOCKER_COMPOSE_HOST}
- REDIS_PORT=6379
- PUBLIC_MANAGEDURL_PORT=9090
- PUBLIC_MANAGEDURL_HOST=${DOCKER_COMPOSE_HOST}
- REMOTE_CONFIG=minio:api-gateway
depends_on:
- controller
- redis
- minio
volumes:
- ~/tmp/openwhisk/api-gateway-ssl:/etc/ssl:ro
- ~/tmp/openwhisk/api-gateway-config/api-gateway/generated-conf.d:/etc/api-gateway/generated-conf.d
- ~/tmp/openwhisk/rclone:/root/.config/rclone:rw
ports:
- "8080:80"
- "8081:443"
- "9000:9000"
- "9090:8080"
```

"make lean" waits forever:

`waiting for the Whisk controller to come up ...
.............................................................................................................................................................................................................`

No logs in the controller:

```
ubuntu@protcolqa:~/dev/openwhisk-devtools/docker-compose$ docker container logs openwhisk_controller_1
ubuntu@protcolqa:~/dev/openwhisk-devtools/docker-compose$
```

"docker ps" looks fine:

```
503d7b547d7b openwhisk/apigateway:nightly "/usr/bin/dumb-init …" 19 minutes ago Up 19 minutes 8423/tcp, 0.0.0.0:9000->9000/tcp, [::]:9000->9000/tcp, 0.0.0.0:8080->80/tcp, [::]:8080->80/tcp, 0.0.0.0:8081->443/tcp, [::]:8081->443/tcp, 0.0.0.0:9090->8080/tcp, [::]:9090->8080/tcp openwhisk_apigateway_1
c485ae69abd7 openwhisk/controller:nightly "/bin/sh -c 'exec /i…" 19 minutes ago Up 12 minutes 0.0.0.0:8888->8888/tcp, [::]:8888->8888/tcp, 8080/tcp, 0.0.0.0:9222->9222/tcp, [::]:9222->9222/tcp openwhisk_controller_1
a8725c88b0a1 apache/couchdb:2.3 "tini -- /docker-ent…" 19 minutes ago Up 19 minutes 4369/tcp, 9100/tcp, 0.0.0.0:5985->5984/tcp, [::]:5985->5984/tcp openwhisk_db_1
5759ec1ce7f8 redis:2.8 "docker-entrypoint.s…" 19 minutes ago Up 19 minutes 0.0.0.0:6379->6379/tcp, [::]:6379->6379/tcp openwhisk_redis_1
629679ea3dd9 minio/minio:RELEASE.2018-07-13T00-09-07Z "/usr/bin/docker-ent…" 20 minutes ago Up 20 minutes (healthy) 0.0.0.0:9001->9000/tcp, [::]:9001->9000/tcp openwhisk_minio_1
```

Would you know why the controller doesn't work? Thanks.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

docker-compose-lean.yml と `make lean` のコントローラー readiness check から始めます。コントローラーコンテナの起動コマンド、マウントされた `/logs` の場所、`docker ps` と `docker logs` の出力を確認し、これらを示されている設定および環境値と比較します。コントローラーが利用可能なログを生成し、`make lean` が無期限に待機せず完了すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
docker, docker-compose
領域
devops, infrastructure
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
30/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。