2016-01-11 13:30:10 -05:00
|
|
|
|
;;; GNU Guix --- Functional package management for GNU
|
|
|
|
|
;;; Copyright © 2016 David Thompson <davet@gnu.org>
|
2018-07-24 10:14:55 -04:00
|
|
|
|
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
2016-01-11 13:30:10 -05:00
|
|
|
|
;;;
|
|
|
|
|
;;; This file is part of GNU Guix.
|
|
|
|
|
;;;
|
|
|
|
|
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
|
|
|
|
;;; under the terms of the GNU General Public License as published by
|
|
|
|
|
;;; the Free Software Foundation; either version 3 of the License, or (at
|
|
|
|
|
;;; your option) any later version.
|
|
|
|
|
;;;
|
|
|
|
|
;;; GNU Guix is distributed in the hope that it will be useful, but
|
|
|
|
|
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;;; GNU General Public License for more details.
|
|
|
|
|
;;;
|
|
|
|
|
;;; You should have received a copy of the GNU General Public License
|
|
|
|
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
(define-module (gnu packages docker)
|
|
|
|
|
#:use-module ((guix licenses) #:prefix license:)
|
|
|
|
|
#:use-module (gnu packages)
|
|
|
|
|
#:use-module (guix packages)
|
|
|
|
|
#:use-module (guix download)
|
|
|
|
|
#:use-module (guix git-download)
|
2018-12-28 11:06:41 -05:00
|
|
|
|
#:use-module (guix build-system go)
|
2016-01-11 13:30:10 -05:00
|
|
|
|
#:use-module (guix build-system python)
|
|
|
|
|
#:use-module (guix utils)
|
2018-07-24 10:14:55 -04:00
|
|
|
|
#:use-module (gnu packages check)
|
2018-12-28 11:06:41 -05:00
|
|
|
|
#:use-module (gnu packages golang)
|
|
|
|
|
#:use-module (gnu packages linux)
|
|
|
|
|
#:use-module (gnu packages pkg-config)
|
gnu: Move web packages from python to python-web.
This is in part to address <https://bugs.gnu.org/27284>.
* gnu/packages/python.scm (python-httplib2, python2-httplib2)
(python-sockjs-tornado, python2-sockjs-tornado)
(python-flask-babel, python2-flask-babel)
(python-html5lib, python2-html5lib)
(python-html5lib-0.9, python2-html5lib-0.9)
(python-html5-parser, python2-html5-parser)
(python-webencodings, python2-webencodings)
(python-openid, python2-openid, python-cssutils, python2-cssutils)
(python-cssselect, python2-cssutils)
(python-openid-cla, python2-openid-cla)
(python-openid-teams, python2-openid-teams)
(python-tornado, python2-tornado)
(python-tornado-http-auth, python-terminado, python2-terminado)
(python-webob, python2-webob, python-zope-event, python2-zope-event)
(python-zope-interface, python2-zope-interface)
(python-zope-exceptions, python2-zope-exceptions)
(python-zope-testing, python2-zope-testing)
(python-zope-testrunner, python2-zope-testrunner)
(python-zope-i18nmessageid, python2-zope-i18nmessageid)
(python-zope-schema, python2-zope-schema)
(python-zope-configuration, python2-zope-configuration)
(python-zope-proxy, python2-zope-proxy)
(python-zope-location, python2-zope-location)
(python-zope-security, python2-zope-security)
(python-zope-component, python2-zope-component)
(python-ndg-httpsclient, python2-ndg-httpsclient)
(python-websocket-client, python2-websocket-client)
(python-requests-toolbelt, python2-requests-toolbelt)
(python-rauth, python2-rauth, python-urllib3, python2-urllib3)
(awscli, python-wsgiproxy2, python2-wsgiproxy2)
(python-pastedeploy, python2-pastedeploy)
(python-webtest, python2-webtest, python-flask, python2-flask)
(python-flast-wtf, python2-flask-wtf)
(python-flask-multistatic, python2-flask-multistatic)
(python-cookies, python2-cookies)
(python-responses, python2-responses)
(python-geventhttpclient, python2-geventhttpclient)
(python-requests-oauthlib, python2-requests-oauthlib)
(python-url, python2-url, python-cachecontrol, python2-cachecontrol)
(python-betamax, python2-betamax)
(python-betamax-matchers, python2-betamax-matchers)
(python-s3transfer, python2-s3transfer)
(python-flask-restful, python-flask-basicauth)
(python-flask-sqlalchemy, python-flask-restplus)
(python-flask-restful-swagger, python-htmlmin, python2-htmlmin)
(python-flask-htmlmin, python2-flask-htmlmin)
(python-flask-login, python2-flask-login)
(python-oauth2client, python-flask-oidc)
(python-webassets, python-cssmin, python2-cssmin)
(python-elasticsearch, python2-elasticsearch)
(python-flask-script, python2-flask-script)
(python-flask-migrate, python2-flask-migrate)
(python-genshi, python2-genshi)
(python-flask-principal, python2-flask-principal)
(python-flask-httpauth, python2-flask-httpauth)
(python-uritemplate, python2-uritemplate): Move to...
* gnu/packages/python-web.scm: ... here. New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/admin.scm, gnu/packages/backup.scm,
gnu/packages/dav.scm, gnu/packages/django.scm,
gnu/packages/docker.scm, gnu/packages/ebook.scm,
gnu/packages/logging.scm, gnu/packages/mail.scm,
gnu/packages/music.scm, gnu/packages/openstack.scm,
gnu/packages/package-management.scm, gnu/packages/rdf.scm,
gnu/packages/tls.scm, gnu/packages/tor.scm,
gnu/packages/tryton.scm, gnu/packages/version-control.scm,
gnu/packages/web-browsers.scm,
gnu/packages/web.scm: Adjust accordingly.
2017-11-13 17:24:11 -05:00
|
|
|
|
#:use-module (gnu packages python)
|
2019-01-07 12:45:23 -05:00
|
|
|
|
#:use-module (gnu packages python-web)
|
|
|
|
|
#:use-module (gnu packages virtualization))
|
2016-01-11 13:30:10 -05:00
|
|
|
|
|
|
|
|
|
(define-public python-docker-py
|
|
|
|
|
(package
|
|
|
|
|
(name "python-docker-py")
|
2018-07-24 10:45:32 -04:00
|
|
|
|
(version "1.10.6")
|
2016-01-11 13:30:10 -05:00
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (pypi-uri "docker-py" version))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
2018-07-24 10:45:32 -04:00
|
|
|
|
"05f49f6hnl7npmi7kigg0ibqk8s3fhzx1ivvz1kqvlv4ay3paajc"))))
|
2016-01-11 13:30:10 -05:00
|
|
|
|
(build-system python-build-system)
|
|
|
|
|
;; TODO: Tests require a running Docker daemon.
|
|
|
|
|
(arguments '(#:tests? #f))
|
|
|
|
|
(inputs
|
|
|
|
|
`(("python-requests" ,python-requests)
|
|
|
|
|
("python-six" ,python-six)
|
|
|
|
|
("python-websocket-client" ,python-websocket-client)))
|
|
|
|
|
(home-page "https://github.com/docker/docker-py/")
|
|
|
|
|
(synopsis "Python client for Docker")
|
|
|
|
|
(description "Docker-Py is a Python client for the Docker container
|
|
|
|
|
management tool.")
|
|
|
|
|
(license license:asl2.0)))
|
2016-01-11 13:35:51 -05:00
|
|
|
|
|
|
|
|
|
(define-public python-dockerpty
|
|
|
|
|
(package
|
|
|
|
|
(name "python-dockerpty")
|
|
|
|
|
(version "0.3.4")
|
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (pypi-uri "dockerpty" version))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"0za6rr349641wv76ww9l3zcic2xyxrirlxpnzl4296h897648455"))))
|
|
|
|
|
(build-system python-build-system)
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("python-six" ,python-six)))
|
|
|
|
|
(home-page "https://github.com/d11wtq/dockerpty")
|
|
|
|
|
(synopsis "Python library to use the pseudo-TTY of a Docker container")
|
|
|
|
|
(description "Docker PTY provides the functionality needed to operate the
|
|
|
|
|
pseudo-terminal (PTY) allocated to a Docker container using the Python
|
|
|
|
|
client.")
|
|
|
|
|
(license license:asl2.0)))
|
2016-01-11 13:36:26 -05:00
|
|
|
|
|
|
|
|
|
(define-public docker-compose
|
|
|
|
|
(package
|
|
|
|
|
(name "docker-compose")
|
|
|
|
|
(version "1.5.2")
|
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (pypi-uri "docker-compose" version))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"0ksg7hm2yvc977968dixxisrhcmvskzpcx3pz0v1kazrdqp7xakr"))))
|
|
|
|
|
(build-system python-build-system)
|
|
|
|
|
;; TODO: Tests require running Docker daemon.
|
|
|
|
|
(arguments '(#:tests? #f))
|
|
|
|
|
(inputs
|
|
|
|
|
`(("python-docker-py" ,python-docker-py)
|
|
|
|
|
("python-dockerpty" ,python-dockerpty)
|
|
|
|
|
("python-docopt" ,python-docopt)
|
|
|
|
|
("python-jsonschema" ,python-jsonschema)
|
|
|
|
|
("python-pyyaml" ,python-pyyaml)
|
|
|
|
|
("python-requests" ,python-requests-2.7)
|
|
|
|
|
("python-six" ,python-six)
|
|
|
|
|
("python-texttable" ,python-texttable)
|
|
|
|
|
("python-websocket-client" ,python-websocket-client)))
|
|
|
|
|
(home-page "https://www.docker.com/")
|
|
|
|
|
(synopsis "Multi-container orchestration for Docker")
|
|
|
|
|
(description "Docker Compose is a tool for defining and running
|
|
|
|
|
multi-container Docker applications. A Compose file is used to configure an
|
|
|
|
|
application’s services. Then, using a single command, the containers are
|
|
|
|
|
created and all the services are started as specified in the configuration.")
|
|
|
|
|
(license license:asl2.0)))
|
2018-07-24 10:14:55 -04:00
|
|
|
|
|
|
|
|
|
(define-public python-docker-pycreds
|
|
|
|
|
(package
|
|
|
|
|
(name "python-docker-pycreds")
|
|
|
|
|
(version "0.3.0")
|
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method url-fetch)
|
|
|
|
|
(uri (pypi-uri "docker-pycreds" version))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"1zxvam1q22qb0jf48553nnncnfrcp88ag4xa0qmq6vr0imn9a3lb"))))
|
|
|
|
|
(build-system python-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(add-after 'unpack 'fix-versioning
|
|
|
|
|
(lambda _
|
|
|
|
|
(substitute* "test-requirements.txt"
|
|
|
|
|
(("3.0.2") ,(package-version python-pytest))
|
|
|
|
|
(("2.3.1") ,(package-version python-pytest-cov))
|
|
|
|
|
(("2.4.1") ,(package-version python-flake8)))
|
|
|
|
|
#t)))))
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("python-flake8" ,python-flake8)
|
|
|
|
|
("python-pytest" ,python-pytest)
|
|
|
|
|
("python-pytest-cov" ,python-pytest-cov)))
|
|
|
|
|
(propagated-inputs
|
|
|
|
|
`(("python-six" ,python-six)))
|
|
|
|
|
(home-page "https://github.com/shin-/dockerpy-creds")
|
|
|
|
|
(synopsis
|
|
|
|
|
"Python bindings for the Docker credentials store API")
|
|
|
|
|
(description
|
|
|
|
|
"Docker-Pycreds contains the Python bindings for the docker credentials
|
|
|
|
|
store API. It allows programmers to interact with a Docker registry using
|
|
|
|
|
Python without keeping their credentials in a Docker configuration file.")
|
|
|
|
|
(license license:asl2.0)))
|
2018-12-28 11:06:41 -05:00
|
|
|
|
|
|
|
|
|
(define-public containerd
|
|
|
|
|
(package
|
|
|
|
|
(name "containerd")
|
|
|
|
|
(version "1.2.1")
|
|
|
|
|
(source
|
|
|
|
|
(origin
|
|
|
|
|
(method git-fetch)
|
|
|
|
|
(uri (git-reference
|
|
|
|
|
(url "https://github.com/containerd/containerd.git")
|
|
|
|
|
(commit (string-append "v" version))))
|
|
|
|
|
(file-name (git-file-name name version))
|
|
|
|
|
(sha256
|
|
|
|
|
(base32
|
|
|
|
|
"16zn6p1ky3yrgn53z8h9wza53ch91fj47wj5xgz6w4c57j30f66p"))))
|
|
|
|
|
(build-system go-build-system)
|
|
|
|
|
(arguments
|
|
|
|
|
`(#:import-path "github.com/containerd/containerd"
|
|
|
|
|
#:phases
|
|
|
|
|
(modify-phases %standard-phases
|
|
|
|
|
(add-before 'build 'chdir
|
|
|
|
|
(lambda _
|
|
|
|
|
(chdir "src/github.com/containerd/containerd")
|
|
|
|
|
#t))
|
|
|
|
|
(add-after 'chdir 'patch-paths
|
|
|
|
|
(lambda* (#:key inputs outputs #:allow-other-keys)
|
|
|
|
|
;; TODO: Patch "socat", "unpigz".
|
|
|
|
|
(substitute* "./runtime/v1/linux/runtime.go"
|
|
|
|
|
(("defaultRuntime[ \t]*=.*")
|
|
|
|
|
(string-append "defaultRuntime = \""
|
|
|
|
|
(assoc-ref inputs "runc")
|
|
|
|
|
"/sbin/runc\"\n"))
|
|
|
|
|
(("defaultShim[ \t]*=.*")
|
|
|
|
|
(string-append "defaultShim = \""
|
|
|
|
|
(assoc-ref outputs "out")
|
|
|
|
|
"/bin/containerd-shim\"\n")))
|
|
|
|
|
(substitute* "./vendor/github.com/containerd/go-runc/runc.go"
|
|
|
|
|
(("DefaultCommand[ \t]*=.*")
|
|
|
|
|
(string-append "DefaultCommand = \""
|
|
|
|
|
(assoc-ref inputs "runc")
|
|
|
|
|
"/sbin/runc\"\n")))
|
|
|
|
|
#t))
|
|
|
|
|
(replace 'build
|
|
|
|
|
(lambda* (#:key (make-flags '()) #:allow-other-keys)
|
|
|
|
|
(apply invoke "make" make-flags)))
|
|
|
|
|
(replace 'install
|
|
|
|
|
(lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
|
|
|
|
|
(let* ((out (assoc-ref outputs "out")))
|
|
|
|
|
(apply invoke "make" (string-append "DESTDIR=" out) "install"
|
|
|
|
|
make-flags)))))))
|
|
|
|
|
(inputs
|
|
|
|
|
`(("btrfs-progs" ,btrfs-progs)
|
|
|
|
|
("libseccomp" ,libseccomp)
|
|
|
|
|
("runc" ,runc)))
|
|
|
|
|
(native-inputs
|
|
|
|
|
`(("go" ,go)
|
|
|
|
|
("pkg-config" ,pkg-config)))
|
2019-01-07 13:13:04 -05:00
|
|
|
|
(synopsis "Docker container runtime")
|
2018-12-28 11:06:41 -05:00
|
|
|
|
(description "This package provides the container daemon for Docker.
|
|
|
|
|
It includes image transfer and storage, container execution and supervision,
|
|
|
|
|
network attachments.")
|
|
|
|
|
(home-page "http://containerd.io/")
|
|
|
|
|
(license license:asl2.0)))
|