Module: Docker
- Extended by:
- Docker
- Included in:
- Docker
- Defined in:
- lib/scripts/docker/build.rb,
lib/scripts/docker/login.rb,
lib/scripts/docker/herokuish.rb,
lib/scripts/docker/push_branch.rb,
lib/scripts/docker/push_latest.rb
Instance Method Summary collapse
Instance Method Details
#build ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/scripts/docker/build.rb', line 3 def build required_env("DOCKER_IMAGE") # set image tag if it hasnt been set env_check("IMAGE_TAG", `git rev-parse HEAD`.strip) dockerfile = env_fetch("BUILD_DOCKERFILE", "Dockerfile") # project_folder = env_fetch("DOCKER_FOLDER", ".") # build docker image command("docker build --pull -t \"$DOCKER_IMAGE:$IMAGE_TAG\" -f #{dockerfile} .") # push docker image command('docker push "$DOCKER_IMAGE:$IMAGE_TAG"') end |
#herokuish ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/scripts/docker/herokuish.rb', line 3 def herokuish # set image tag if it hasnt been set # also has to support old ruby versions dockerfile_contents = " FROM gliderlabs/herokuish\n\n COPY . /app\n\n RUN /bin/herokuish buildpack build\n\n CMD [\"/start\", \"web\"]\n DOCKERFILE\n\n dockerfile_contents = unindent(dockerfile_contents)\n\n timed_run \"Creating herokuish dockerfile\" do\n File.write(\"Dockerfile.herokuish\", dockerfile_contents)\n\n ENV[\"BUILD_DOCKERFILE\"] = \"Dockerfile.herokuish\"\n end\n\n run_script(\"docker/build\")\nend\n" |
#login ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/scripts/docker/login.rb', line 3 def login # set image tag if it hasnt been set required_env("DOCKER_USERNAME") required_env("DOCKER_PASSWORD") env_check("DOCKER_EMAIL", "[email protected]") docker_registry = env_fetch("DOCKER_REGISTRY", nil) # login to docker hub login_command = 'docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD" -e "$DOCKER_EMAIL"' login_command += " #{docker_registry}" if docker_registry command(login_command) end |
#push_branch ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/scripts/docker/push_branch.rb', line 3 def push_branch required_env("DOCKER_IMAGE") # set image tag if it hasnt been set env_check("IMAGE_TAG", `git rev-parse HEAD`.strip) branch = `git rev-parse --abbrev-ref HEAD`.strip # tag image command("docker tag \"$DOCKER_IMAGE:$IMAGE_TAG\" \"$DOCKER_IMAGE:#{branch}\"") # push docker image command("docker push \"$DOCKER_IMAGE:#{branch}\"") end |
#push_latest ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/scripts/docker/push_latest.rb', line 3 def push_latest latest_branch = env_fetch("DOCKER_LATEST_BRANCH", "master") branch = `git rev-parse --abbrev-ref HEAD`.strip return if branch != latest_branch required_env("DOCKER_IMAGE") # set image tag if it hasnt been set env_check("IMAGE_TAG", `git rev-parse HEAD`.strip) # tag latest image command('docker tag "$DOCKER_IMAGE:$IMAGE_TAG" "$DOCKER_IMAGE:latest"') # push docker image command('docker push "$DOCKER_IMAGE:latest"') end |