Public Repository

Last pushed: a year ago
Short Description
A python image with PostgreSQL to use with Bitbucket Pipelines.
Full Description

Python and PostgreSQL for Bitbucket Pipelines

This repository contains a Dockerfile as well as a simple example that shows how you can run your own Docker container with Python and PostgreSQL on Bitbucket Pipelines.

The Docker image is using python 2.7 and PostgreSQL 9.4


Using the image with Bitbucket Pipelines

Just copy/paste the YML below in your bitbucket-pipelines.yml and adapt the script to your needs.

# This is a sample build configuration for Javascript.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Dockerhub as your build environment.
image: valtechcanada/python-postgres

    - step:
        script: # Modify the commands below to build your repository.
          - /etc/init.d/postgresql start # starting the service
          - sudo -u postgres psql -c "CREATE USER project_name WITH ENCRYPTED PASSWORD 'project_name' SUPERUSER;" # create superuser
          - sudo -u postgres psql -c "CREATE DATABASE project_name OWNER project_name;" # create database
          - pip install -r requirements.txt
          - pytest --create-db

Create your own image

If you want to use a different version of Python you can simply create your own image for it. Just copy the content of the Dockerfile and replace the first line.

This image is built from the official Python and you can find there all the different versions that are supported.

Your Dockerfile won't need to have an ENTRYPOINT or CMD line as Bitbucket Pipelines will run the script commands that you put in your bitbucket-pipelines.yml file instead.

FROM python:2.7
RUN apt-get update \
  && apt-get install -y postgresql postgresql-contrib \
  && apt-get install sudo \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# This Dockerfile doesn't need to have an entrypoint and a command
# as Bitbucket Pipelines will overwrite it with a bash script.

Build the image

docker build -t <your-docker-account>/python-postgresql .

Run the image locally with bash to make some tests

docker run -i -t <your-docker-account>/python-postgresql /bin/bash

Push the image back to the DockerHub

docker push <your-docker-account>/python-postgresql
Docker Pull Command