Docker新手问题在这里
我正在容器化我自己的Python脚本,遵循本教程和那个教程。
我注意到当我修复Python脚本中的错误时(myscript.py)),则在重新运行sudo docker-compose up
时不会看到此更改。我需要更改docker-compose.yml中的应用程序名称(。frommy-awesome-app2到my-awesome-app3
我尝试使用sudo docker container ls -a
列出可用的容器,然后使用sudo docker rm <CONTAINER ID>
删除未使用的容器,但这没有帮助。
我怎样才能得到docker-compose看到对Python脚本所做的更改,而不必不断更改Dockerfile?
这是我的docker- composer .yml:
version: "3"
services:
my-awesome-app3:
build:
context: .
这是我的Dockerfile:FROM python:3.8.3
# Or any preferred Python version.
ADD myscript.py .
RUN pip3 install pywavelets scipy
CMD ["python", "./myscript.py"]
# Or enter the name of your unique directory and parameter set.
这里是myscript.py:
from scipy.misc import electrocardiogram
import pywt
import numpy as np
ecg = electrocardiogram()
FPData = ecg.reshape(10800,-1)
DWTcoeffs = pywt.wavedec(FPData[:,1], 'db4')
filtered_data_dwt=pywt.waverec(DWTcoeffs,'db4',mode='symmetric',axis=-1)
print(filtered_data_dwt)
让我们说我打错了(print(filtered_data)
而不是print(filtered_data_dwt)
)…重新运行sudo docker-compose up
仍然会触发:
my-awesome-app2_1 | NameError: name 'filtered_data' is not defined
没有足够的声誉来评论,但是您是否重新构建了您的容器?
sudo docker compose up --rebuild
是一种一举两得的方法。
注:根据您的安全限制,您可以将其设置为运行,而无需使用sudo