-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
be2880b
commit c01c9cf
Showing
4 changed files
with
39 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
ARCHITECTURE=arm64v8/ | ||
RUBY_VERSION=2.6 | ||
ORTOOLS_VERSION=v7.8 # select from https://github.com/google/or-tools/releases |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,24 @@ | ||
# 1.0.13 is the latest version containing bundler 2 required for optimizer-api | ||
FROM phusion/passenger-ruby25:1.0.13 | ||
ARG RUBY_VERSION | ||
ARG ARCHITECTURE | ||
|
||
ARG ORTOOLS_URL=${ORTOOLS_URL} | ||
FROM ${ARCHITECTURE}ruby:${RUBY_VERSION} | ||
|
||
LABEL maintainer="Mapotempo <[email protected]>" | ||
ARG ORTOOLS_VERSION=${ORTOOLS_VERSION} | ||
|
||
WORKDIR /srv/ | ||
|
||
# Trick to install passenger-docker on Ruby 2.5. Othwerwise `apt-get update` fails with a | ||
# certificate error. See following links for explanantion: | ||
# https://issueexplorer.com/issue/phusion/passenger-docker/325 | ||
# and | ||
# https://issueexplorer.com/issue/phusion/passenger-docker/322 | ||
# Basically, DST Root CA X3 certificates are expired on Setember 2021 and apt-get cannot validate | ||
# with the old certificates and the certification correction is only done for Ruby 2.6+ on the | ||
# passenger-docker repo because Ruby 2.5 is EOL. | ||
RUN mv /etc/apt/sources.list.d /etc/apt/sources.list.d.bak | ||
RUN apt update && apt install -y ca-certificates | ||
RUN mv /etc/apt/sources.list.d.bak /etc/apt/sources.list.d | ||
# The above trick can be removed after Ruby version is increased. | ||
LABEL maintainer="Mapotempo <[email protected]>" | ||
|
||
RUN apt-get update > /dev/null && \ | ||
apt-get -y install git wget pkg-config build-essential cmake autoconf libtool zlib1g-dev lsb-release > /dev/null | ||
apt install -y git build-essential cmake swig lsb-release python3-pip autoconf libtool zlib1g-dev > /dev/null && \ | ||
git clone -b ${ORTOOLS_VERSION} https://github.com/google/or-tools /srv/or-tools | ||
|
||
ADD . /srv/or-tools | ||
WORKDIR /srv/or-tools | ||
|
||
RUN wget -qO- $ORTOOLS_URL | tar xz --strip-components=1 -C /srv/or-tools | ||
RUN cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_PYTHON=ON && \ | ||
# Create code | ||
cmake --build build --config Release --target all -j -v && \ | ||
# build | ||
cmake --build build --config Release --target install -v | ||
|
||
ADD . /srv/optimizer-ortools | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
version: '3.7' | ||
x-app-args: &app-args | ||
ARCHITECTURE: ${ARCHITECTURE} | ||
RUBY_VERSION: ${RUBY_VERSION} | ||
ORTOOLS_VERSION: ${ORTOOLS_VERSION} | ||
|
||
x-app: &default-app | ||
volumes: | ||
- ./:/srv/app/ | ||
env_file: | ||
- ./.env | ||
|
||
services: | ||
main: | ||
<<: *default-app | ||
build: | ||
args: | ||
<<: *app-args | ||
context: . | ||
dockerfile: Dockerfile | ||
image: dev.example.com/mapotempo/optimizer-ortools | ||
tty: true |