Skip to content

An example repository to demonstrate Docker support in Pants.

License

Notifications You must be signed in to change notification settings

benjyw/example-docker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

example-docker

An example repository to demonstrate Pantsbuild's experimental Docker support.

See pantsbuild.org for much more detailed documentation.

This is only one possible way of laying out your project with Pantsbuild. See pantsbuild.org/docs/source-roots#examples for some other example layouts.

Note: Pantsbuild and Pants will be used interchangebly, they refer to the same thing, the Pants Build System.

Running Pantsbuild

You run Pants goals using the ./pants wrapper script, which will bootstrap the configured version of Pants if necessary.

Use ./pants --version to see the version of Pants configured for the repo (which you can also find in pants.toml).

Goals

Pants commands are called goals. You can get a list of goals with

./pants help goals

Most goals take arguments to run on. To run on a single directory, use the directory name with : at the end. To recursively run on a directory and all its subdirectories, add :: to the end.

For example:

./pants lint src/python/hello_world: src/docker::

You can run on all changed files:

./pants --changed-since=HEAD lint

You can run on all changed files, and any of their "dependees":

./pants --changed-since=HEAD --changed-dependees=transitive test

Example Goals

Try these out in this repo!

Run a Docker image

./pants run src/docker/hello_world:python
./pants run src/docker/hello_world:shell

List targets

./pants list ::  # All targets.
./pants list 'src/**/*.py'  # Just targets containing Python code.

Run linters and formatters

./pants fmt lint ::  # First format, then lint all sources.

Count lines of code

./pants count-loc '**/*'

Dynamic image tag

The documentation for dynamic image tagging has an example implementation here showcasing how it works.

DYNAMIC_TAG=$(date +%Y.%m.%d) ./pants package src/docker/dynamic_tags

10:47:43.89 [INFO] Completed: Building docker image dynamic_tags:1.0-2022.03.15
10:47:43.89 [INFO] Built docker image: dynamic_tags:1.0-2022.03.15
Docker image ID: sha256:8f6922aec0de7c147862672fa2cef4bd72f51e02b5a06089b0383355410b79f2

DYNAMIC_TAG=$(date +%Y.%m.%d) ./pants run src/docker/dynamic_tags
10:47:43.89 [INFO] Completed: Building docker image dynamic_tags:1.0-2022.03.15
  ____
| demo |
  ====
    \
     \
       ^__^
       (oo)\_______
       (__)\       )\/\
           ||----w |
           ||     ||

About

An example repository to demonstrate Docker support in Pants.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 86.9%
  • Starlark 10.7%
  • Python 2.4%