Detailed explanation of the process of docker packaging Python environment

Detailed explanation of the process of docker packaging Python environment

The steps of docker packaging Python environment are as follows:

1 Export the dependency packages under pip list

pip freeze > requirements.txt

Put the exported requirements.txt in the docker_test directory

docker_test is the code source folder to be packaged. The docker_test folder of this demo should have requirements.txt and app.py files

2. Write the Dockfile

Create a Dockerfile in the same directory as docker_test. The format is as follows:

#Base image based on FROM python:3.9.6

# Maintainer information MAINTAINER name [email protected]

# Add the code in the docker_test directory to the code folder in the image (there is a space between the two directory parameters)

ADD ./docker_test /code

# Set the code folder to be the working directory WORKDIR /code

# Installation support RUN pip install -r requirements.txt

#Run the app.py file when docker is runningCMD ["python","/code/app.py"]

3. Create an image

docker build -t imagename Dockerfilepath 

# Dockerfilepath: The name of the folder where the Dockerfile is located. The current directory is "." 

docker build -t d_t .

4 Run the image

docker run -t -i d_t

5 Operation Results

ps: Let's take a look at the docker packaged Python program

Steps: Prepare the environment - Copy the Python program - Start the program

For simplicity, our Python program is a Python file app.py

app.py

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
    return "hello docker"
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000)

Dockerfile

FROM python:2.7
LABEL maintainer="Peng Xiao<[email protected]>"
RUN pip install flask
COPY app.py /app/
WORKDIR /app
EXPOSE 5000
CMD ["python", "app.py"]

Build image and start container

docker build -t soymilk/python-test .
docker run -d soymilk/python-test

This is the end of this article about the process of packaging Python environment in docker. For more information about the process of packaging Python environment in docker, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • How to implement packaging in docker python
  • Detailed explanation of Docker package python commands
  • This article teaches you how to use Docker to package the Python runtime environment

<<:  How to solve the problem of absolutely positioned elements mysteriously disappearing or being blocked in IE6/7

>>:  The images in HTML are directly replaced by base64 encoded strings

Recommend

VUE introduces the implementation of using G2 charts

Table of contents About G2 Chart use Complete cod...

JS implements click drop effect

js realizes the special effect of clicking and dr...

CSS eight eye-catching HOVER effect sample code

1. Send effect HTML <div id="send-btn&quo...

How to use IDEA to configure tomcat and create JSP files

Before using idea to write JSP files, you need to...

Implementation code for partial refresh of HTML page

Event response refresh: refresh only when request...

Detailed installation tutorial of zabbix 4.04 (based on CentOS 7.6)

1. Preparation before installation: 1.1 Install J...

Detailed explanation of the working principle and solution of Js modularization

Table of contents 1. Modular concept 2. Modulariz...

Solution to the MySQL server has gone away error

MySQL server has gone away issue in PHP 1. Backgr...

Tomcat uses Log4j to output catalina.out log

Tomcat's default log uses java.util.logging, ...

Implementation of Docker deployment of Django+Mysql+Redis+Gunicorn+Nginx

I. Introduction Docker technology is very popular...

Example code for Html layered box-shadow effect

First, let’s take a look at the picture: Today we...

CSS realizes process navigation effect (three methods)

CSS realizes the process navigation effect. The s...

Why MySQL can ignore time zone issues when using timestamp?

I have always wondered why the MySQL database tim...