You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.6 KiB

# python-pip-docker-template
<img src="wiki/images/Logo_circular_python_name_bg_600dpi.png" width="600">
Here is a simple repo template for python pip Docker Projects (Sapian Standar)
# Features
- Python
- Docker (Miocroservicios)
- pip (pipenv and pip setup)
- kubernetes (Helm Chart)
- Metrics (Prometheus)
- docker buildx (Multiarch)
# using this template
``` bash
new_project_name=new-name
new_project_name_constant=$(echo ${new_project_name^^}| tr "-" "_")
new_project_name_snake=$(echo ${new_project_name}| tr "-" "_")
find . -type f -exec sed -i "s/python-pip-docker-template/${new_project_name}/g" {} \;
find . -type f -exec sed -i "s/PYTHON_PIP_DOCKER_TEMPLATE/${new_project_name_constant}/g" {} \;
find . -type f -exec sed -i "s/python_pip_docker_template/${new_project_name_snake}/g" {} \;
mv python-pip-docker-template/python-pip-docker-template python-pip-docker-template/${new_project_name}
mv python-pip-docker-template ${new_project_name}
```
# Build And Push to docker registry
``` bash
version=0.1.1
docker build --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') --build-arg VCS_REF=$(git rev-parse --short HEAD) -t sapian/python-pip-docker-template:latest -t sapian/python-pip-docker-template:${version} --build-arg VERSION=${version} .
```
# build multiarch and push
``` bash
version=0.1.1
docker buildx build --push \
--platform linux/arm64/v8,linux/amd64,linux/arm/v7 \
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
--build-arg VCS_REF=$(git rev-parse --short HEAD) \
--tag custom/python-pip-docker-template:latest \
--tag quay.io/custom/python-pip-docker-template:latest \
--tag custom/python-pip-docker-template:${version} \
--tag quay.io/custom/python-pip-docker-template:${version} \
.
```
# Run For Testing
## Set Enviroment variables
Fill de file `.env`
``` ini
LOG_LEVEL=INFO
```
## Run
``` Bash
docker run --env-file .env --rm -it sapian/python-pip-docker-template:latest
```
# Set developing enviroment
``` bash
conda create -n python-pip-docker-template python=3.9
/opt/$USER/anaconda3/envs/python-pip-docker-template/bin/pip install pipenv
/opt/$USER/anaconda3/envs/python-pip-docker-template/bin/pipenv --python=/opt/$USER/anaconda3/envs/python-pip-docker-template/bin/python install
/opt/$USER/anaconda3/envs/python-pip-docker-template/bin/pipenv --python=/opt/$USER/anaconda3/envs/python-pip-docker-template/bin/python install --dev
```
## Ipyhon
``` bash
cd ~/Workspace/python-pip-docker-template/
conda activate python-pip-docker-template
/opt/$USER/anaconda3/envs/python-pip-docker-template/bin/pipenv run ipython
```