У меня есть скрипт, который строит изображения, отправляет их в докер-хаб и проверяет все ошибки. Но моя основная цель - запустить определенную команду, например " node server.js ", а затем начать выполнение команд сценария.
, и я хочу, чтобы она была в одном файле сценария все вместе.
На данный момент я открываю 2 терминала с Первый терминал , выполнив команду ' node server.js ' для запускаприложение. А из Второго терминала , выполняющего скрипт.
и я хочу настроить команду «node server.js» внутри скрипта для запуска в фоновом режиме и позволить скрипту продолжить ив то же время.
Пока это мой скрипт, и когда скрипт запускает команду os.system (start_node) , скрипт перестает работать с другими командами. поэтому у меня возникает вопрос, как выполнить эту команду и позволить сценарию продолжить работу, не открывая 2 терминала, и запустить в 1 терминальном узле server.js, а во втором - сценарий без команды os.system (start_node) .
#!/usr/bin/env python3
#Before running this script need to start the app 'node server.js'
import os
import sys
os.chdir ("/opt/new-test-app")
start_node = 'node server.js'
npm_test = 'npm test'
npm_output = ' 8 passing'
image = 'docker build -t test/new-test-app-new:latest .'
test = 'curl -o /dev/null -s -w "%{http_code}\n" http://localhost:8081'
docker_login = 'cat /cred/cred.txt | docker login --username test --password-stdin'
docker_push = 'docker push alexkocloud/new-test-app-new:latest'
os.system(start_node)
os.system(npm_test)
if npm_output == 0:
print ("npm test not succesfully passed")
sys.exit()
else:
print('npm test successfuly passed with "8 passing"')
if os.system(test) == 0:
print('HTTP Status Code 200 OK')
else:
print('ERROR CODE')
sys.exit()
os.system(image)
os.system(docker_login)
os.system(docker_push)
sys.exit(0)