#node.js #exec
#node.js #выполнение
Вопрос:
В настоящее время я запускаю сервер узлов с подмодулем golang в docker. Чтобы запустить модуль golang, я выполняю команду
go run cmd/downloader/main.go -build 1621568 -outdir /src/results
Я не смог понять, как добавить эти флаги в сборку golang в моем файле dockerfile. Вот мой текущий файл dockerfile.
FROM golang:1.17 AS downloader WORKDIR /app COPY component-review-handler/ ./ RUN go build -o downloader ./cmd/downloader FROM node:14 # vvv add this line COPY --from=downloader /app/downloader /usr/local/bin/ # same as before WORKDIR /usr/src/app COPY package*.json ./ RUN npm install COPY . . ENV NODE_TLS_REJECT_UNAUTHORIZED='0' EXPOSE 3000 CMD ["node", "server.js"]
В службе узлов я выполняю двоичный файл golang, запустив
exec( `downloader`, (error, stdout, stderr) =gt; { if (error) { logger.error(`error: ${error.message}`) return } if (stderr) { logger.log(`stderr: ${stderr}`) return } logger.log(`stdout: ${stdout}`) } )
Проблема в том, что мне нужно добавить флаги в команду загрузчика. Кто-нибудь знает, как я могу добавить этот флаг при динамическом запуске двоичного файла на узловом сервере?
-build 1621568 -outdir /src/results
Комментарии:
1. Я не понимаю, как это на самом деле вопрос о работе или даже вопрос о докере. Конечно, вы запускаете приложение Go, но вы спрашиваете о nodejs exec. Я собираюсь удалить эти метки. Уверенные в себе несогласные, не стесняйтесь отвергать меня.
2. Конечно, извините за плохие флаги. Это сервер узлов, на котором работает двоичный файл go в докере, просто хотел быть доскональным. Спасибо за помощь!
Ответ №1:
Вместо этого попробуйте execFile
execFile('downloader', ['-build', '1621568', '-outdir', '/src/results'], (error, stdout, stderr) =gt; { if (error) { logger.error(`error: ${error.message}`) return } if (stderr) { logger.log(`stderr: ${stderr}`) return } logger.log(`stdout: ${stdout}`) } )
Комментарии:
1. Когда я пытаюсь добавить флаги здесь, я получаю следующую ошибку ошибка: Команда не выполнена: флаг загрузчика ‘-сборка 1621568’ указан, но не определен: -сборка 1621568
2. Попробуйте execFile
execFile('downloader', ['-build', '1621568', '-outdir', '/src/results'], (error, stdout, stderr) =gt; {...})