- 使用ubuntu镜像时,dockerfile里面用
apt命令会报错(虽然一般情况下会运行成功,但是有报错信息),最好用apt-get - 我尝试直接用清华源替换ubuntu源,结果报错了,需要安装
ca-certificates包才能正常替换,但是直接安装这个包也会报错,所以还要先apt-get update一下才行,最后的Dockerfile模板在下面 -
CMD命令后面不要加 &,以前习惯命令后面加&让程序后台运行,写dockerfile习惯性的加上了之后,每次docker run程序都是秒退,后来发现是程序后台运行,导致docker以为程序执行完了,所以退出。。 -
COPY命令会默认吧文件夹内文件复制到指定位置,而不是把文件夹复制进去
|-- root_dir
|---- test_dir
|------- file1
|------- file2
在root_dir 下执行docker build,使用./*的时候,复制结果可能不是我们想要的,所以复制当前文件夹就直接用./
COPY ./* /app/
# ./* 结果
|-- app
|------- file1
|------- file2
COPY ./ /app/
|-- app
|---- test_dir
|------- file1
|------- file2
自用模板
第一个apt-get update浪费了大量时间,不知道有什么好的办法没
FROM ubuntu
COPY ./ /app/
RUN cd /app \
&& apt-get update \
&& apt-get install -y ca-certificates \
&& cp ./sources.list /etc/apt/ \
&& apt-get update \
&& apt-get install -y openjdk-8-jdk-headless \
&& apt-get install -y python3 python3-pip \
&& pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
CMD cd /app \
&& uvicorn main:app --reload --port 5001 --workers 1 --host 0.0.0.0