Следующий Эта статья и используя этот справочный документ, Я пытаюсь запустить RabbitMQ как службу для моей работы. Контейнер запускается, но интерполяция переменных среды не работает.
Вот мой рабочий процесс:
name: Test & Publish
on:
push:
branches:
- master
jobs:
test:
runs-on: ubuntu-latest
services:
rabbitmq:
image: rabbitmq
ports:
- 5672/tcp
env:
RABBITMQ_USER: guest
RABBITMQ_PASSWORD: guest
RABBITMQ_VHOST: "/"
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
- run: yarn
- run: ./scripts/test-all.sh
env:
RABBITMQ_HOST: rabbitmq
RABBITMQ_PORT: $❴❴ job.services.rabbitmq.ports['5672'] ❵❵
publish-npm:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
with:
node-version: 12
registry-url: https://registry.npmjs.org/
- run: yarn
- run: yarn semantic-release
env:
NODE_AUTH_TOKEN: ${{secrets.npm_token}}
Проблема в том RABBITMQ_PORT
часть. Я изменил свой код, чтобы распечатать значение
console.log(`amqp://${process.env.RABBITMQ_HOST}:${process.env.RABBITMQ_PORT}`)
... и я получаю это в журналах:
amqp://rabbitmq:$❴❴ job.services.rabbitmq.ports['5672'] ❵❵
... что неверно. Контейнер RabbitMQ, похоже, успешно запустился, и я вижу, что он сопоставил порт: 5672/tcp -> 0.0.0.0:32768
, поэтому, если бы интерполяция была правильной, я бы ожидал увидеть
amqp://rabbitmq:32768
Тем не менее, документы, похоже, не выполняют интерполяцию иначе, чем я, поэтому я не понимаю, в чем проблема.
Моя проблема заключалась в копировании / вставке.
Я вставил
$❴❴ job.services.rabbitmq.ports['5672'] ❵❵
когда это должно было быть
${{ job.services.rabbitmq.ports['5672'] }}
Фигурные скобки - это другой код символа:
var first = '❴';
var second = '{';
console.log(`${first.charCodeAt(0)} is not the same as ${second.charCodeAt(0)}`);
//=> "10100 is not the same as 123"