{"id":27822,"library":"ghost-ship","title":"Ghost Ship","description":"Ghost Ship is a deployment tool for HashiCorp Nomad that builds Docker images and submits Nomad jobs. It wraps Packer and Nomad CLI commands. Current version: 0.3.5. Release cadence is irregular.","status":"active","version":"0.3.5","language":"python","source_language":"en","source_url":"https://github.com/jtopjian/ghost-ship","tags":["nomad","deployment","devops"],"install":[{"cmd":"pip install ghost-ship","lang":"bash","label":"PyPI install"}],"dependencies":[{"reason":"Required for parsing configuration files","package":"pyyaml","optional":false},{"reason":"CLI framework","package":"click","optional":false}],"imports":[{"note":"Package name uses hyphen but import uses underscore","wrong":"from ghostship import GhostShip","symbol":"GhostShip","correct":"from ghost_ship import GhostShip"},{"note":"API class for building artifacts","symbol":"Builder","correct":"from ghost_ship import Builder"}],"quickstart":{"code":"import os\nfrom ghost_ship import GhostShip\n\nconfig = {\n    'nomad_addr': os.environ.get('NOMAD_ADDR', 'http://localhost:4646'),\n    'datacenter': 'dc1'\n}\nship = GhostShip(config)\nship.deploy('my-job.nomad', image_tag='v1.0')","lang":"python","description":"Initialize GhostShip with config and deploy a Nomad job."},"warnings":[{"fix":"Use 'ghost_ship' in import statements.","message":"The package name is 'ghost-ship' (with hyphen), but Python imports use underscore: 'import ghost_ship'.","severity":"gotcha","affected_versions":"all"},{"fix":"Replace ship.ship(...) with ship.deploy(...).","message":"Breaking change in v0.3.0: The 'ship' method renamed to 'deploy'.","severity":"breaking","affected_versions":">=0.3.0"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Use 'import ghost_ship' instead of 'import ghostship'.","cause":"Incorrect import due to hyphen.","error":"ModuleNotFoundError: No module named 'ghostship'"},{"fix":"Use .deploy() method instead of .ship().","cause":"Method renamed in v0.3.0.","error":"AttributeError: 'GhostShip' object has no attribute 'ship'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}