1

私はwerckerを使用して、クライアントの統合テストのためにredisおよびpostgresサービス(すべてのアプリケーションレベル)とともにプライベートサービスとしてAPIサーバーを実行することにより、APIクライアントのテストとデプロイを自動化しています。このセットアップにより、理論的には、クライアントが API サーバーと対話し、クライアントとサーバーの両方が同じ postgres および redis サービスを使用できるようになります。

私のプライベート サービスはデータベース サービスに依存しているため、これらのサービスのホストとポート (公開された環境変数) を、起動時にコンテナーに環境変数として挿入する必要があります。ただし、これらの公開された接続変数に、それらが宣言されている同じサービス ブロック内からアクセスできませんでした。

以下の wercker.yml のセクションを投稿しました。

 - id: postgres
   env:
       POSTGRES_PASSWORD: $POSTGRES_PASSWORD
       POSTGRES_USER: $POSTGRES_USER
       POSTGRES_DB: $POSTGRES_DB

 - redis

 # - spotify/cassandra

 - name: realtime
   id: quay.io/ndustrialio/realtime-api-service
   username: $QUAY_USERNAME
   password: $QUAY_PASSWORD
   tag: latest
   registry: https://quay.io
   env:
       CLIENT_ID: $CLIENT_ID
       CLIENT_SECRET: $CLIENT_SECRET
       POSTGRES_USER: $POSTGRES_USER
       POSTGRES_PASSWORD: $POSTGRES_PASSWORD
       POSTGRES_DB: $POSTGRES_DB
       POSTGRES_HOST: $POSTGRES_PORT_5432_TCP_ADDR
       NODE_ENV: wercker_test
       REDIS_HOST: $REDIS_PORT_6379_TCP_ADDR
       REDIS_PORT: 6379
       REDIS_DB: 0
       CASSANDRA_HOSTS: cassandra

環境変数 $REDIS_PORT_6379_TCP_ADDR および $POSTGRES_PORT_5432_TCP_ADDR は、リアルタイム サービス コンテナーでは空です。リアルタイム サービスでこれらの変数にアクセスするにはどうすればよいですか?

4

1 に答える 1