|
| 1 | +#!/usr/bin/env python |
| 2 | + |
| 3 | +# This is an example of generating image packages from within python |
| 4 | + |
| 5 | +import os |
| 6 | +import shutil |
| 7 | +from singularity.cli import get_image |
| 8 | +from singularity.package import package |
| 9 | + |
| 10 | +# Save packages here |
| 11 | +output_folder = '/home/vanessa/Documents/Dropbox/Code/singularity/singularity-python/examples/package_image/packages' |
| 12 | + |
| 13 | +# Here are my images. I'm lazy so I'm going to use all docker |
| 14 | +# https://github.com/docker-library/official-images/tree/master/library |
| 15 | +images = ['aerospike','alpine','amazonlinux','arangodb','backdrop','bash','bonita','buildpack-deps', |
| 16 | + 'busybox','cassandra','celery','centos','chronograf','cirros','clearlinux','clojure','composer', |
| 17 | + 'consul','couchbase','couchdb','crate','crux','debian','django','docker','drupal','eclipse-mosquitto', |
| 18 | + 'eggdrop','elasticsearch','elixir','erlang','fedora','fsharp','gazebo','gcc','ghost','golang','haproxy', |
| 19 | + 'haskell','hello-world','httpd','hylang','ibmjava','influxdb','iojs','irssi','java','jenkins','jetty', |
| 20 | + 'joomla','jruby','julia','kaazing-gateway','kapacitor','kibana','known','kong','lightstreamer', |
| 21 | + 'logstash','mageia','mariadb','maven','memcached','mongo','mongo-express','mono','mysql','nats', |
| 22 | + 'nats-streaming','neo4j','neurodebian','nextcloud','nginx','node','notary','nuxeo','odoo','openjdk', |
| 23 | + 'opensuse','oraclelinux','orientdb','owncloud','percona','perl','photon','php','php-zendserver', |
| 24 | + 'piwik','plone','postgres','pypy','python','r-base','rabbitmq','rails','rakudo-star','redis', |
| 25 | + 'redmine','registry','rethinkdb','rocket.chat','ros','ruby','sentry','solr','sonarqube','sourcemage', |
| 26 | + 'spiped','storm','swarm','telegraf','thrift','tomcat','tomee','traefik','ubuntu','vault', |
| 27 | + 'websphere-liberty','wordpress','zookeeper'] |
| 28 | + |
| 29 | +# You will need to export your sudopw to an environment variable called pancakes for it to not ask you :) |
| 30 | +os.environ['pancakes'] = 'yoursecretpass' |
| 31 | + |
| 32 | +for name in images: |
| 33 | + docker_image = "docker://%s:latest" %(name) |
| 34 | + image = get_image(docker_image) |
| 35 | + package_name = "%s/%s.zip" %(output_folder,os.path.basename(image)) |
| 36 | + if not os.path.exists(package_name): |
| 37 | + image_package = package(image_path=image, |
| 38 | + output_folder=output_folder, |
| 39 | + remove_image=True, |
| 40 | + runscript=True, |
| 41 | + software=True) |
| 42 | + tmpfolder = os.path.dirname(image) |
| 43 | + |
| 44 | + |
0 commit comments