我有一个在 docker 中运行的 python 应用程序。在应用程序中,我使用 datetime.now() 函数,该函数从容器时区获取值。所以我应该配置容器时区。
我的目录结构:
- myapp (project folder)
- DockerFile
- docker-compose.yml
- requirement.txt
- run.py
Run Code Online (Sandbox Code Playgroud)
我的 Dockerfile:
FROM ubuntu:latest
ENV TZ=Europe/Istanbul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY . /app
ENV HOME=/app
WORKDIR /app
RUN pip install -r requirements.txt
ENV LOGIN_USERNAME=master_login_username
ENV LOGIN_PASSWORD=master_login_password
ENV SLAVE_LOGIN_USERNAME=slave_login_username
ENV SLAVE_LOGIN_PASSWORD=slave_login_password
ENV AWS_ACCESS_KEY_ID=....
ENV AWS_SECRET_ACCESS_KEY=....
ENV CLUSTER_NAME=....
EXPOSE 5000
ENTRYPOINT ["gunicorn","-b","0.0.0.0:5000","-w","1","myapp:create_app()","--access-logfile","/app/myapp/logs/access.log","--error-logfile","/app/myapp/logs/error.log","--timeout","90"]
Run Code Online (Sandbox Code Playgroud)
我的 docker-compose.yml:
version: …Run Code Online (Sandbox Code Playgroud) 如您所见,路径中有一个文件。但是fs说没有这样的文件或目录。我不明白为什么?
在另一个文件中,我可以使用相同的代码删除。
我的boat.js文件:
boat.findById(req.params.id,function(err, foundBoat) {
if(err){
console.log(err);
}else{
foundBoat.boatsFoto.forEach(function(path){
console.log(typeof(path));
fs.unlink("../public"+path,function(err){
if(err) throw err;
console.log('File deleted!');
});
});
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的错误:
Error: ENOENT: no such file or directory, unlink '../public/uploads/akingokay/BoatsFoto/1524411110335kiralik-tekne.jpg'
at Error (native)
Run Code Online (Sandbox Code Playgroud)