From 9ef499847a76ea41f3d69a9554ab6af10f5bd22b Mon Sep 17 00:00:00 2001 From: Suvanjan Mukherjee Date: Fri, 26 Oct 2018 13:19:33 -0400 Subject: [PATCH] Fix sample project incorporating comments from @mboes Full comment at https://github.com/tweag/rules_nixpkgs/issues/39#issuecomment-433225268 --- docker_run.sh | 2 +- project/.bazelrc | 1 + project/BUILD | 10 ++++++---- project/WORKSPACE | 15 ++++++++------- project/app.py | 7 +++++++ project/python.nix | 3 +++ project/run.sh | 2 +- 7 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 project/.bazelrc create mode 100644 project/python.nix diff --git a/docker_run.sh b/docker_run.sh index 5a12e3c..710cf14 100755 --- a/docker_run.sh +++ b/docker_run.sh @@ -2,5 +2,5 @@ set -ex IMAGE=$1 -docker run -v $(pwd)/project:/workdir -w=/workdir --entrypoint="/bin/bash" ${IMAGE} run.sh +docker run -v $(pwd)/project:/workdir -p 8080:8080 -w=/workdir --entrypoint="/bin/bash" ${IMAGE} run.sh diff --git a/project/.bazelrc b/project/.bazelrc new file mode 100644 index 0000000..d723ccc --- /dev/null +++ b/project/.bazelrc @@ -0,0 +1 @@ +run --python_top=//:python-2.7.15 diff --git a/project/BUILD b/project/BUILD index 94543ff..64bbd84 100644 --- a/project/BUILD +++ b/project/BUILD @@ -2,8 +2,10 @@ py_binary( name="app", srcs=["app.py"], - deps = [ - "@python-2.7.15//:python27Packages.python", - "@python2.7-Flask-1.0.2//:python27Packages.flask" - ] +) + +py_runtime( + name="python-2.7.15", + files=[], + interpreter="@python-2.7.15//:interpreter", ) diff --git a/project/WORKSPACE b/project/WORKSPACE index 5e70f15..2ca0ccd 100644 --- a/project/WORKSPACE +++ b/project/WORKSPACE @@ -13,13 +13,14 @@ nixpkgs_git_repository( nixpkgs_package( name= "python-2.7.15", - attribute_path= "python27Packages.python", - repositories = {"@nixpkgs": "nixpkgs"} + nix_file= "//:python.nix", + repositories = {"nixpkgs": "@nixpkgs//:default.nix"}, + build_file_content= """ +package(default_visibility = ["//visibility:public"]) +filegroup( + name = "interpreter", + srcs = ["bin/python"], ) - -nixpkgs_package( - name = "python2.7-Flask-1.0.2", - attribute_path= "python27Packages.flask", - repositories = { "@nixpkgs": "nixpkgs" } +""" ) diff --git a/project/app.py b/project/app.py index 2edf6f5..f23ab42 100644 --- a/project/app.py +++ b/project/app.py @@ -4,3 +4,10 @@ @app.route('/') def hello(): return "Hello World!" + +if __name__ == '__main__': + app.run( + host='0.0.0.0', + port=8080, + debug=True + ) diff --git a/project/python.nix b/project/python.nix new file mode 100644 index 0000000..43df4f1 --- /dev/null +++ b/project/python.nix @@ -0,0 +1,3 @@ +with (import {}); + +python27.withPackages (pkgs: [pkgs.flask]) diff --git a/project/run.sh b/project/run.sh index 184bdc7..bbd007c 100644 --- a/project/run.sh +++ b/project/run.sh @@ -3,4 +3,4 @@ set -ex -bazel build :app +bazel run :app