PyCharm通过docker运行Django项目
创建Dockerfile文件
# base image FROM python:3.11.4-slim-bullseye # 更新软件源为清华大学源 RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" > /etc/apt/sources.list RUN echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free" >> /etc/apt/sources.list RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security/ bullseye-security main contrib non-free" >> /etc/apt/sources.list RUN echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security/ bullseye-security main contrib non-free" >> /etc/apt/sources.list RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list RUN echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free" >> /etc/apt/sources.list RUN apt-get update && apt-get install -y openssh-server # 创建 .ssh 目录 RUN mkdir -p /root/.ssh RUN chmod 700 /root/.ssh # 配置 SSH RUN mkdir -p /var/run/sshd RUN echo 'root:root' | chpasswd RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed -i 's/#StrictModes yes/StrictModes no/' /etc/ssh/sshd_config RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /etc/ssh/sshd_config RUN apt-get update && apt-get install -y default-libmysqlclient-dev build-essential python3-dev pkg-config WORKDIR /app ENV VIRTUAL_ENV=/opt/venv # 创建 Python 虚拟环境 RUN python -m venv ${VIRTUAL_ENV} ENV PATH="${VIRTUAL_ENV}/bin:${PATH}" RUN pip install --upgrade pip COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list \ && sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list \ && sed -i '/deb-src/s/^#//' /etc/apt/sources.list RUN apt-get update \ && apt-get install -y --no-install-recommends gcc g++ libc-dev libffi-dev libgmp-dev libmpfr-dev libmpc-dev ffmpeg # set timezone ENV TZ=Asia/Shanghai RUN sed -i 's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list \ && sed -i 's/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list \ && sed -i '/deb-src/s/^#//' /etc/apt/sources.list \ && apt-get update \ && apt-get install -y --no-install-recommends curl nodejs libgmp-dev libmpfr-dev libmpc-dev zlib1g expat perl libsqlite3-0 curl wget git vim procps net-tools iputils-ping netcat ffmpeg\ && apt-get autoremove -y \ && rm -rf /var/lib/apt/lists/* ARG COMMIT_SHA ENV COMMIT_SHA=${COMMIT_SHA} # ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] # 暴露 22 端口 EXPOSE 22 # 启动 SSH 服务 CMD ["/usr/sbin/sshd", "-D"]
在Dockerfile文件所处目录下放入Django项目的requirements.txt文件
在终端输入 docker build -t python3.11-ssh . 创建镜像
镜像创建成功后,使用PyCharm打开对应的Django项目,设置Python解析器为从docker镜像中读取


随后一直next,最后create,等待建立好依赖索引。
在PyCharm中配置Django启动器

首先hosts需要配置为0.0.0.0,否则在docker容器中启动的Django将不允许外部的网络访问。
在environment中配置好项目的配置文件,最后在docker container settings制定好容器内的Django端口暴露。
本文来自博客园,作者:margo,转载请注明原文链接:https://www.cnblogs.com/ZMargo/articles/18689521

浙公网安备 33010602011771号