Giter Site home page Giter Site logo

pgrouting / docker-pgrouting Goto Github PK

View Code? Open in Web Editor NEW
66.0 21.0 34.0 184 KB

Docker for pgRouting

Home Page: https://hub.docker.com/repository/docker/pgrouting/pgrouting

License: GNU General Public License v2.0

Dockerfile 96.06% Makefile 0.68% Shell 3.26%

docker-pgrouting's Introduction

docker-pgrouting

Docker automated Docker status Docker builds

pgRouting Docker images.

Note: The outdated docker images folders for the unsupported pgRouting versions are removed, but they can be retrieved from the Git history, if needed by someone.

Contents

Versions

There are several versions available:

(*) If you want to use the last versions of develop or main branches you should consider to build the image by your own. See here how to build images:

Tag roles

{PostgreSQL major}-{PostGIS major/minor}-{pgRouting version}

Tag for pgRouting 3.4.1 with PostgreSQL 15 and PostGIS 3.3:

pgrouting/pgrouting:15-3.3-3.4.1

How to use

Running pgRouting with Docker compose

Run postgres database:

$ cd 15-3.3-3.4
$ docker-compose up

Running pgRouting without Docker compose

Run postgres database:

$ cd 15-3.3-3.4
$ docker run --name pgrouting -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d pgrouting/pgrouting:$(cat version.txt)

How to build images

Building images:

$ cd 15-3.3-3.4
$ docker build -t pgrouting/pgrouting:$(cat version.txt) .

Using psql with Docker compose:

$ docker-compose exec pgrouting psql -U postgres

Example:

psql (15.1 (Debian 15.1-1.pgdg110+1))
Type "help" for help.

postgres=# create database test;
CREATE DATABASE
postgres=# \c test
You are now connected to database "test" as user "postgres".
test=# create extension postgis;
CREATE EXTENSION
test=# create extension pgrouting;
CREATE EXTENSION
test=# select version();
                                                           version
-----------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 15.1 (Debian 15.1-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
(1 row)

test=# select pgr_version();
 pgr_version 
-------------
 3.4.1
(1 row)

test=# select postgis_full_version();
                                                                       postgis_full_version
---------------------------------------------------------------------------------------------------------------------------------------
----------------------------
 POSTGIS="3.3.2 4975da8" [EXTENSION] PGSQL="150" GEOS="3.9.0-CAPI-1.16.2" PROJ="7.2.1" LIBXML="2.9.10" LIBJSON="0.15" LIBPROTOBUF="1.3.
3" WAGYU="0.5.0 (Internal)"
(1 row)

test=# 

Develop

To make new version for example x.x, run following:

mkdir 15-3.3-x.x
touch 15-3.3-x.x/Dockerfile
touch 15-3.3-x.x/version.txt
make update

make update run update.sh, that finds new Dockerfile and generates Dockerfile, docker-compose.yml, README.md, and extra/Dockerfile from template.

License

This program 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 2 of the License, or (at your option) any later version.

Links

docker-pgrouting's People

Contributors

aruneko avatar cayetanobv avatar cvvergara avatar krashish8 avatar robe2 avatar sanak avatar smellman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-pgrouting's Issues

Publish newest images to dockerhub

Problem
I'm trying to use a pgrouting image in my setup. The images on dockerhub have not been updated for about two years though, so pulling from there gives me outdated images. The images in this repo seem to be updated more frequently.

Improvement
Can these images (preferably automatically) be pushed to dockerhub, so that we can simply base our setup on the latest there.

Alternatives
The alternative we're now looking at is copy-pasting the Dockerfiles from this repo into our own. That is obviously not a sustainable method, and creates more complicated Dockerfiles in our own repo, so we would prefer using the images from dockerhub.

Add pgRouting 3.0.0 release versions

Is your feature request related to a problem? Please describe.
pgRouting 3.0.0 was released at last May 20th, so it may be better to update that version.
https://lists.osgeo.org/pipermail/pgrouting-users/2020-May/002462.html

Describe the solution you'd like
Probably, the following images add/update will be necessary ?

  • 10-2.5-3.0.0 (Add)
  • 10-2.5-develop (Update)
  • 10-2.5-master (Update)
  • 11-2.5-3.0.0 (Add)
  • 11-2.5-develop (Update)
  • 11-2.5-master (Update)
  • 12-3.0-3.0.0 (Add)
  • 12-3.0-develop (Update)
  • 12-3.0-master (Update)

Errors in building existing docker images

E.g. for 13-3.1-3.2.0:

$ docker build .
Sending build context to Docker daemon  8.192kB
Step 1/6 : FROM postgis/postgis:13-3.1
 ---> 3a40ce4c6592
Step 2/6 : LABEL maintainer="pgRouting Project - https://pgrouting.net"
 ---> Using cache
 ---> f02131a161af
Step 3/6 : ENV PGROUTING_VERSION 3.2.0
 ---> Using cache
 ---> 883f2d5437d6
Step 4/6 : ENV PGROUTING_SHA256 5cf4d2147cf0897b5e2de9f1b526339abf293226c411882dba4901ba049092ab
 ---> Using cache
 ---> 9a8e9b1517fb
Step 5/6 : RUN set -ex  && apt update  && apt install -y         libboost-atomic1.67.0         libboost-chrono1.67.0         libboost-graph1.67.0         libboost-date-time1.67.0         libboost-program-options1.67.0         libboost-system1.67.0         libboost-thread1.67.0         libcgal13  && apt install -y         build-essential         cmake         wget         libboost-graph-dev         libcgal-dev         libpq-dev         postgresql-server-dev-${PG_MAJOR}  && wget -O pgrouting.tar.gz "https://github.com/pgRouting/pgrouting/archive/v${PGROUTING_VERSION}.tar.gz"  && echo "$PGROUTING_SHA256 *pgrouting.tar.gz" | sha256sum -c -  && mkdir -p /usr/src/pgrouting  && tar         --extract         --file pgrouting.tar.gz         --directory /usr/src/pgrouting         --strip-components 1  && rm pgrouting.tar.gz  && cd /usr/src/pgrouting  && mkdir build  && cd build  && cmake ..  && make  && make install  && cd /  && rm -rf /usr/src/pgrouting  && apt-mark manual postgresql-13  && apt purge -y --autoremove         build-essential         cmake         wget         libcgal-dev         libpq-dev         libboost-graph-dev         postgresql-server-dev-${PG_MAJOR}  && rm -rf /var/lib/apt/lists/*
 ---> Running in 63a8c7a0385d
+ apt update

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 http://security.debian.org/debian-security bullseye-security InRelease [44.1 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [39.4 kB]
Get:4 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [161 kB]
Get:5 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg InRelease [91.7 kB]
Get:6 http://deb.debian.org/debian bullseye/main amd64 Packages [8,182 kB]
Get:7 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg/main amd64 Packages [249 kB]
Get:8 http://apt.postgresql.org/pub/repos/apt bullseye-pgdg/13 amd64 Packages [2,575 B]
Get:9 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [2,592 B]
Fetched 8,889 kB in 15s (583 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
53 packages can be upgraded. Run 'apt list --upgradable' to see them.
+ apt install -y libboost-atomic1.67.0 libboost-chrono1.67.0 libboost-graph1.67.0 libboost-date-time1.67.0 libboost-program-options1.67.0 libboost-system1.67.0 libboost-thread1.67.0 libcgal13

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Reading package lists...
Building dependency tree...
Reading state information...
Package libcgal13 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Unable to locate package libboost-atomic1.67.0
E: Couldn't find any package by glob 'libboost-atomic1.67.0'
E: Unable to locate package libboost-chrono1.67.0
E: Couldn't find any package by glob 'libboost-chrono1.67.0'
E: Unable to locate package libboost-graph1.67.0
E: Couldn't find any package by glob 'libboost-graph1.67.0'
E: Unable to locate package libboost-date-time1.67.0
E: Couldn't find any package by glob 'libboost-date-time1.67.0'
E: Unable to locate package libboost-program-options1.67.0
E: Couldn't find any package by glob 'libboost-program-options1.67.0'
E: Unable to locate package libboost-system1.67.0
E: Couldn't find any package by glob 'libboost-system1.67.0'
E: Unable to locate package libboost-thread1.67.0
E: Couldn't find any package by glob 'libboost-thread1.67.0'
E: Package 'libcgal13' has no installation candidate
The command '/bin/sh -c set -ex  && apt update  && apt install -y         libboost-atomic1.67.0         libboost-chrono1.67.0         libboost-graph1.67.0         libboost-date-time1.67.0         libboost-program-options1.67.0         libboost-system1.67.0         libboost-thread1.67.0         libcgal13  && apt install -y         build-essential         cmake         wget         libboost-graph-dev         libcgal-dev         libpq-dev         postgresql-server-dev-${PG_MAJOR}  && wget -O pgrouting.tar.gz "https://github.com/pgRouting/pgrouting/archive/v${PGROUTING_VERSION}.tar.gz"  && echo "$PGROUTING_SHA256 *pgrouting.tar.gz" | sha256sum -c -  && mkdir -p /usr/src/pgrouting  && tar         --extract         --file pgrouting.tar.gz         --directory /usr/src/pgrouting         --strip-components 1  && rm pgrouting.tar.gz  && cd /usr/src/pgrouting  && mkdir build  && cd build  && cmake ..  && make  && make install  && cd /  && rm -rf /usr/src/pgrouting  && apt-mark manual postgresql-13  && apt purge -y --autoremove         build-essential         cmake         wget         libcgal-dev         libpq-dev         libboost-graph-dev         postgresql-server-dev-${PG_MAJOR}  && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100

@pgRouting/admins

Add vrpRouting

There is a new project in pgRouting Github organisation: vrpRouting
@krashish8 and I thought it would be nice to have it available via Docker.

vrpRouting has the dependency Vroom, which also can be run through Docker.

This brought up the question, if it is better add vrpRouting to existing Docker images or have its own one.

@cayetanobv , what is your opinion? My current preference would be to add it to docker-pgrouting. What do you think would be best?

Provide image for arm64 platform

Problem
The docker image is only published for amd64 architecture. For Developers working on Apple silicon this means they will run in Rosetta2 emulation.

Improvement
Create and push an arm64 build

Alternatives
The current image is working but is running slow due to the emulation. Other alternative is doing a custom build on the development system based on the docker files from the repo.

Does it support the installation of Alpine basic image?

Problem

Does it support the installation of Alpine basic image? Both Postgres and PostGIS support the installation under the alpine basic image. If so, what do I need to do?
To Reproduce

Expectation

Sample Data

Platform/versions

SELECT version();
SELECT postgis_full_version();
SELECT pgr_version();

Support single docker image for a pgRouting minor release

We are having different docker images for different pgRouting patch releases.

Maybe we can have a single image a-b-x.y containing the latest patch release x.y.z, instead of several images a-b-x.y.0, a-b-x.y.1, etc because anyway, users would want to use the latest patch release.
(a = PostgreSQL version, b = PostGIS version, x.y.z = major.minor.patch version of pgRouting)

PostGIS also maintains a single docker image for a minor release: https://github.com/postgis/docker-postgis#versions--2022-06-22- and that contains the latest patch release.

@pgRouting/admins

Add workshop

The pgRouting Workshop for FOSS4G 2021 Argentina has been released as v2.7.0.
@cvvergara and I thought it would be good to have it available as part of the Docker image.

@cayetanobv , May we please know your opinion? Is it possible?

Rename branch `development` to `develop`

In pgRouting project we kind of stick to the convention to name the development branch develop and it took me quite some time to figure out why I couldn't find it ;-)

[Solved] Error launching with docker-compose (`docker-credential-secretservice not installed or not available in PATH`)

I was having some trouble launching with docker-compose as per the README, getting the following error:

docker-credential-secretservice not installed or not available in PATH

Googling led me here. It is a solution for MAC OS, but it worked for me on Ubuntu 18.04.

The solution was to open ~/.docker/config.json and removing the credsStore entry.

Disclaimer: I don't really know what this line does, I am just doing local testing so I am not worried about security here, so I advise doing more homework before doing this on a production server or other potentially dangerous environment.

Apply for OSS project with Docker Hub?

Found this email in my mailbox:

Hi there,

As one of the users of Docker Hub’s Autobuild service, we wanted to reach out and let you know that from June 18th, 2021 users on the free plan will no longer have access to the Autobuild feature. This means that any of your currently configured Autobuild will fail to run and you will need to upgrade to a Pro or Team account to restore functionality. You can read more about the changes on our blog.

To ease this transition we are offering 20% off Docker Pro and Team for new and returning subscriptions through June 18, 2021 so you can continue using that Autobuild goodness you know and love.

If you’re part of the Docker Open Source program, and currently leveraging Autobuilds as part of a Free plan, we want to continue supporting you and we will be reaching out to make sure you will not be impacted by this change.

Docker is wholly focused on providing you amazing and magical experiences. We really appreciate your support and the community’s understanding as the whole industry battles against these abusive crypto miners. .

Thanks,
Team Docker

Docker Hub becomes a bit annoying, adding another limitation for non-paying users. We could apply as an OSS project, but the form questions are slighly ridiculous: https://www.docker.com/community/open-source/application

Do we want to look for an elternative? Is there one?
@cayetanobv @smellman @aruneko

Docker Hub requirements

The following email was sent to me regarding the "Docker-Sponsored Open Source Program" requirements:

Thank you for your interest in renewing your membership with the Docker-Sponsored Open Source Program. Upon reviewing your application for pgRouting, we determined that your project mostly meets the qualification criteria, with the exception that it should be in active development. This means image updates are pushed regularly to Docker Hub within the past 6 months or dependencies are updated regularly, even if the project source code is stable.

If you still wish to proceed with the renewal and continue benefiting from the Docker-Sponsored Open Source Program, we kindly ask you to reply to this email once you have pushed updated images to Docker Hub. Please keep in mind that failure to provide the necessary updates or respond to this email within 2 working weeks may result in the de-provisioning of your benefits.

It seems that this repository hasn't been maintained for some time now, so the question is, is there still interest in using Docker Hub?

@cayetanobv @sanak

Docker Hub - problem adding new versions

Hi @pgRouting/admins ,

I can't generate new image builds (we need to add new versions and change latest) because pgRouting Github repository does not appear here for me:

image

My account is linked as Github account at Dockerhub:

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.