install-service 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/python3 -u
  2. import os, os.path, subprocess
  3. SERVICE_DIR = "/container/service"
  4. INSTALL_FILENAME = "install.sh"
  5. PROCESS_FILENAME = "process.sh"
  6. nb_process = 0
  7. print("install-service")
  8. # Auto run global install script if available
  9. if os.path.isfile(SERVICE_DIR + os.sep + INSTALL_FILENAME):
  10. print(("run " + SERVICE_DIR + os.sep + INSTALL_FILENAME))
  11. subprocess.call([SERVICE_DIR + os.sep + INSTALL_FILENAME],shell=True)
  12. print(("remove " + SERVICE_DIR + os.sep + INSTALL_FILENAME + "\n"))
  13. os.remove(SERVICE_DIR + os.sep + INSTALL_FILENAME)
  14. # Process install script of services in /container/service
  15. for service in sorted(os.listdir(SERVICE_DIR)):
  16. if os.path.isfile(SERVICE_DIR + os.sep + service + os.sep + INSTALL_FILENAME):
  17. print(("run " + SERVICE_DIR + os.sep + service + os.sep + INSTALL_FILENAME))
  18. subprocess.call([SERVICE_DIR + os.sep + service + os.sep + INSTALL_FILENAME],shell=True)
  19. print(("remove " + SERVICE_DIR + os.sep + service + os.sep + INSTALL_FILENAME))
  20. os.remove(SERVICE_DIR + os.sep + service + os.sep + INSTALL_FILENAME)
  21. if os.path.isfile(SERVICE_DIR + os.sep + service + os.sep + PROCESS_FILENAME):
  22. nb_process += 1
  23. print((str(nb_process) + " process found."))
  24. # Multiple process image
  25. if nb_process > 1:
  26. if not os.path.exists("/container/multiple_process_stack_added"):
  27. print("This image has multiple process.")
  28. subprocess.call(["apt-get update"],shell=True)
  29. subprocess.call(["/container/tool/add-multiple-process-stack"],shell=True)
  30. print("For better image build process consider adding:")
  31. print("\"/container/tool/add-multiple-process-stack\" after an apt-get update in your Dockerfile.")