gpt4 book ai didi

linux - 提取新代码后创建本地目录以编辑代码

转载 作者:太空宇宙 更新时间:2023-11-04 11:53:27 27 4
gpt4 key购买 nike

在从另一台计算机上的 Docker Hub 存储库中拉取数据后,我一直想弄清楚如何编辑 python flask 代码。我想在我的 Linux 桌面中创建一个文件夹,其中包含图像作为容器运行时所具有的所有包(Dockerfile、requirements.txt、app.py),这样我就可以编辑 app.py,而不管我有什么计算机或者即使我的同学想要编辑它,他们也可以简单地拉取我的图像,运行容器,并能够将代码副本保存在他们的本地机器上,以便他们使用 Visual Studio Code(或任何 IDE)打开它并编辑它。这就是我尝试过的。我首先从 Docker 中心拉取:

sudo docker pull woonx/dockertester1

然后使用此命令将图像作为容器运行并创建目录:

sudo docker  run --name=test1 -v ~/testfile:/var/lib/docker -p 4000:80 woonx/dockertester1

我能够创建一个名为 testfile 的本地目录,但当我打开它时它是一个空文件夹。没有 app.py、dockerfile,什么都没有。

我用来测试的示例代码来自 Docker 网站上的示例指南:https://docs.docker.com/get-started/part2/

docker 文件:

# Use an official Python runtime as a parent image
FROM python:2.7-slim

# Set the working directory to /app
WORKDIR /app

# Copy the current directory contents into the container at /app
COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Define environment variable
ENV NAME World

# Run app.py when the container launches
CMD ["python", "app.py"]

要求.txt:

Flask 
Redis

应用.py:

from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
try:
visits = redis.incr("counter")
except RedisError:
visits = "<i>cannot connect to Redis, counter disabled</i>"

html = "<h3>Hello {name}!</h3>" \
"<b>Hostname:</b> {hostname}<br/>" \
"<b>Visits:</b> {visits}"
return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
app.run(host='0.0.0.0', port=80)

最佳答案

我所做的是;首先,我发出 docker run 命令。

sudo docker  run --name=test1 -v ~/testfile:/var/lib/docker -p 4000:80 woonx/dockertester1

在这个阶段,文件在容器中创建。然后我停止容器(假设容器 ID 是 0101010101)。

docker container stop 0101010101

我所做的只是将这些文件从容器复制到我机器上的适当目录,方法是:

 docker cp <container_name>:/path/in/container /path/of/host 

or

cd ~/testfile
docker cp <container_name>:/path/in/container .

因此,您在本地主机上运行了 docker 创建的文件。现在您可以通过 -v 选项使用它们。

sudo docker  run --name=test1 -v ~/testfile:/var/lib/docker -p 4000:80 woonx/dockertester1

通常,当您更改配置中的设置时,应该足以停止/启动容器以采取行动。

希望这种方法能解决您的问题。

问候

关于linux - 提取新代码后创建本地目录以编辑代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55293047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com