Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
Script recalcul calque
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ERASME
Script recalcul calque
Commits
ff9ae4a3
Commit
ff9ae4a3
authored
2 years ago
by
Pierre-Gilles Levallois
Browse files
Options
Downloads
Patches
Plain Diff
Refactoring python imaage
parent
6886c716
Loading
Loading
1 merge request
!6
Fully functional version that calculate layer with all stages
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Dockerfiles/python/Dockerfile
+72
-38
72 additions, 38 deletions
Dockerfiles/python/Dockerfile
with
72 additions
and
38 deletions
Dockerfiles/python/Dockerfile
+
72
−
38
View file @
ff9ae4a3
# Use an official Python runtime as a parent image
FROM
python:3.9-slim-buster
##################################################################################
# Taken from https://github.com/Toblerity/Fiona/issues/1063
##################################################################################
FROM
debian:10
#buster-slim
# Set the working directory to /app
WORKDIR
/app
# Add a non-root user to run the application
RUN
groupadd
-r
calquluser
&&
useradd
--no-log-init
-r
-g
calquluser calquluser
# Copy the current directory contents into the container at /app
COPY
. /app
# Install any needed packages specified in requirements.txt
RUN
apt-get update
&&
\
apt-get
install
-y
--no-install-recommends
\
libgdal-dev
\
pkg-config
\
python3-gi
\
python3-gi-cairo
&&
\
apt-get clean
&&
\
rm
-rf
/var/lib/apt/lists/
*
&&
\
pip
install
--no-cache-dir
--upgrade
pip
&&
\
pip
install
--no-cache-dir
--no-deps
--disable-pip-version-check
-r
requirements.txt
&&
\
rm
-rf
/root/.cache
# Change ownership of the application to the non-root user
RUN
chown
-R
calquluser:calquluser /app
# Switch to the non-root user
COPY
./ /app/
# Basic libs and install python3.7
RUN
apt-get update
&&
apt-get upgrade
-y
\
&&
apt-get
install
-y
procps wget python3.7 python3-pip gdal-bin libgdal-dev apt-utils git
\
&&
apt-get clean
\
apt-get
-y
install
proj proj-dev
&&
\
# https://stackoverflow.com/questions/70508775/error-could-not-build-wheels-for-pycairo-which-is-required-to-install-pyprojec
apt-get install -y libcairo2 libcairo2-dev && \
################################# Debug and diagnose tools
#################################
apt-get install -qy apt-utils vim iputils-ping net-tools telnet curl && \
apt-get install -qy postgresql-client && \
############################################################################################
rm -rf /var/lib/apt/lists/*
# Pip & Python
RUN
python3
-m
pip
install
--no-cache-dir
--upgrade
pip
\
&&
pip
install
--no-cache-dir
--global-option
=
build_ext
--global-option
=
"-I/usr/include/gdal"
GDAL
==
`
gdal-config
--version
`
\
&&
pip
install
--no-cache-dir
--ignore-installed
PyYAML
\
# https://stackoverflow.com/questions/70508775/error-could-not-build-wheels-for-pycairo-which-is-required-to-install-pyprojec
&& pip install --no-cache-dir manimlib \
&& pip install --no-cache-dir manimce \
&& pip install rtree pygeos \
&& pip install --upgrade shapely \
&& pip install --no-cache-dir --upgrade -r ./scripts/requirements.txt
# Add a non root user (OpenShift Requirements)
RUN
addgroup calquluser
&&
\
useradd calquluser -g calquluser --home /app && \
mkdir -p /app && \
mkdir -p /app/logs && \
mkdir -p /app/tmp && \
chown -R calquluser:calquluser /app && \
chmod 777 /app/logs /app/tmp /app
# WORKDIR /app
USER
calquluser
#
Define the arguments for the Dockerfile
#
Arguments
ARG
NAMESPACE_ENV
ARG
DB_HOST
ARG
DB_PORT
ARG
DB_NAME
ARG
DB_USER
ARG
DB_HOST_ENV
ARG
DB_PORT_ENV
ARG
DB_NAME_ENV
ARG
DB_USER_ENV
# Getting some Args and Setting some ENV variables
ENV
CPLUS_INCLUDE_PATH="/usr/include/gdal"
ENV
C_INCLUDE_PATH="/usr/include/gdal"
# ENV PROJ_LIB="/usr/local/lib/python3.7/dist-packages/pyproj/proj_dir/share/proj"
ENV
PROJ_LIB="/usr/local/lib/python3.7/dist-packages/fiona/proj_data/"
ENV
GDAL_DATA="/usr/local/lib/python3.7/dist-packages/fiona/gdal_data/"
# Debug verbosity
ENV
PROJ_DEBUG=3
# Set the environment variables for the arguments
ENV
NS_ENV=$NS_ENV
ENV
NS_ENV=$NAMESPACE_ENV
ENV
DB_HOST="$DB_HOST_ENV-$NAMESPACE_ENV"
ENV
DB_PORT=$DB_PORT
ENV
DB_NAME=$DB_NAME
ENV
DB_USER=$DB_USER
ENV
DB_PORT=$DB_PORT_ENV
ENV
DB_NAME=$DB_NAME_ENV
ENV
DB_USER=$DB_USER_ENV
# # Add app
# COPY --chown=calquluser:calquluser ./scripts/*.py ./
# COPY --chown=calquluser:calquluser ./scripts/*.sh ./
# COPY --chown=calquluser:calquluser ./sql ./
# COPY --chown=calquluser:calquluser .env ./
# Set the environment variable for PROJ_LIB
ENV
PROJ_LIB=/usr/share/proj/
# RUN chmod 755 ./*.sh
# Run the command to start the Python script
CMD
["/bin/bash", "-c", "/app/launch.sh $NS_ENV $DB_HOST $DB_PORT $DB_NAME $DB_USER"]
\ No newline at end of file
# Launch calculation
# Documentation : https://stackoverflow.com/questions/40454470/how-can-i-use-a-variable-inside-a-dockerfile-cmd
CMD
[ "/bin/sh", "-c", "/app/scripts/launch.sh $NS_ENV $DB_HOST $DB_PORT $DB_NAME $DB_USER" ]
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment