Ronan Blog

罗华东的博客 | 向前每多走一步,热爱和勇气就会多一分。

Dockerfile的简单实现

2024-09-02 4 min read Docs Ronan

构建第一个Dockerfile

假设该镜像实现的等同于我们在已经配置好python环境的机器上通过python hello.py命令来运行一个python脚本

所以该Dockerfile的构建有以下步骤:

  1. 在桌面或其他位置新建一个文件夹,假设文件夹名为docker
  2. 在docker新建一个hello.py文件,hello.py已经实现所需功能
  3. 再在docker新建一个Dockerfile注意:仅开头且必须大写

以下是Dockerfile内容:

FROM python:3.9.19-alpine3.18
COPY hello.py /hello.py
CMD python hello.py

Dockerfile语法说明

Dockerfile 是 Docker 构建镜像的描述文件,它包含了一系列指令,描述了如何从基础镜像创建一个新的 Docker 镜像。

下面是 Dockerfile 中常用指令的说明及其语法,参考自Docker Dockerfile | 菜鸟教程 (runoob.com):

Dockerfile 指令说明
FROM指定基础镜像,用于后续的指令构建。
MAINTAINER指定Dockerfile的作者/维护者。(已弃用,推荐使用LABEL指令)
LABEL添加镜像的元数据,使用键值对的形式。
RUN在构建过程中在镜像中执行命令。
CMD指定容器创建时的默认命令。(可以被覆盖)
ENTRYPOINT设置容器创建时的主要命令。(不可被覆盖)
EXPOSE声明容器运行时监听的特定网络端口。
ENV在容器内部设置环境变量。
ADD将文件、目录或远程URL复制到镜像中。
COPY将文件或目录复制到镜像中。
VOLUME为容器创建挂载点或声明卷。
WORKDIR设置后续指令的工作目录。
USER指定后续指令的用户上下文。
ARG定义在构建过程中传递给构建器的变量,可使用 “docker build” 命令设置。
ONBUILD当该镜像被用作另一个构建过程的基础时,添加触发器。
STOPSIGNAL设置发送给容器以退出的系统调用信号。
HEALTHCHECK定义周期性检查容器健康状态的命令。
SHELL覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT指令。

详细说明:

Continue reading

「Python」虚拟环境

2024-09-02 1 min read Docs Ronan

在虚拟环境中,pip 和 pip3 通常会指向同一个 Python 版本的包管理器。虚拟环境会自动配置 pip 指向该环境中的 Python 解释器。

创建虚拟环境:

python3 -m venv myenv

[!NOTE] 此方法创建的虚拟环境基于系统自带的python版本,不能创建系统未安装的python版本的虚拟环境。假设系统的python3版本是3.12,那么通过 -m venv 创建的虚拟环境中的python也会是3.12版本的

如果要创建系统本身未安装的python版本虚拟环境,可以通过 conda 实现

激活虚拟环境:

1.对于 Bash 或 Zsh:

source myenv/bin/activate

2.对于 Fish shell:

source myenv/bin/activate.fish

3.对于 Windows 命令提示符:

myenv\Scripts\activate.bat

4.对于 Windows PowerShell:

myenv\Scripts\Activate.ps1

检查pip和pip3指向的路径:

激活虚拟环境后,运行以下命令来检查 pip 和 pip3 的路径:

which pip
which pip3

在虚拟环境中,这两个命令通常会输出相同的路径,例如:

/path/to/your/venv/bin/pip
/path/to/your/venv/bin/pip3

检查pip和pip3版本:

你也可以检查pip和pip3的版本号,它们应该指向相同的Python版本:

pip -V
pip3 -V

输出应该类似于:

pip 20.2.3 from /path/to/your/venv/lib/python3.8/site-packages/pip (python 3.8)
pip 20.2.3 from /path/to/your/venv/lib/python3.8/site-packages/pip (python 3.8)

软链接的使用,以 python 举例

2024-09-02 1 min read Linux Ronan

在 macOS 上创建和使用软链接(symbolic link)的操作非常实用,特别是在管理不同版本的 Python 时。以下是一些关于创建和使用软链接的方法,以 pythonpython3 为例。

1. 什么是软链接(Symbolic Link)?

软链接是一种特殊的文件,指向另一个文件或目录。它类似于 Windows 系统中的快捷方式。软链接允许你使用不同的名称来访问相同的文件或目录。

2. 创建软链接

使用 ln -s 命令创建软链接。以下是几个例子:

示例 1: 将 python 指向 python3

假设你的 python3 可执行文件位于 /usr/local/bin/python3,你想让 python 命令指向 python3

sudo ln -sf /usr/local/bin/python3 /usr/local/bin/python
  • -s 表示创建软链接。
  • -f 表示如果目标文件已存在,强制覆盖。

示例 2: 为自定义路径创建软链接

如果你安装了一个自定义版本的 Python,例如在 /opt/python3.9/bin/python3.9,你想创建一个软链接 python3 来指向它:

sudo ln -s /opt/python3.9/bin/python3.9 /usr/local/bin/python3

这会让 /usr/local/bin/python3 指向你自定义路径下的 Python 3.9。

3. 验证软链接

创建软链接后,可以使用 ls -l 命令来验证:

ls -l /usr/local/bin/python
ls -l /usr/local/bin/python3

输出结果应该类似于:

Continue reading
Older posts Newer posts