我尝试基于 Ubuntu 创建自己的容器(Debian 也一样)。我用它docker-compose
来管理我的容器,也用它dockerfile
来创建我的容器。
当我使用来docker-compose
创建和启动我的容器时,我总是有一个状态Exited 0
(没有日志或屏幕上的信息,当我使用简单的 docker 命令创建和启动时,它运行良好。
你知道为什么吗?
我的 dockerfile
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get install -y sqlite3 libsqlite3-dev apache2 php php-sqlite3
RUN /usr/bin/sqlite3 /etc/apache2/db/test.db
RUN apt-get clean autoclean
RUN apt-get autoremove --yes
RUN rm -rf /var/lib/apt/lists/*
CMD /bin/bash
我的 docker-compose
bdd:
container_name: bdd
build: /docker/bdd
image: image_bdd:latest
答案1
谢谢你的回答。我忘了把它写在我的问题里,但是这行代码FROM ubuntu:latest
是存在的。为了回答这个问题,我找到了使用 CMD 行的解决方案,因为你可以在互联网上找到很多版本:
CMD ["/usr/sbin/apache2ctl", "-DFOREGROUND"]
线路CMD ["/bin/bash"]
运行不正常。你知道原因是什么吗?
答案2
FROM
Dockerfile 中缺少指令
答案3
您需要指定您想要从哪个图像进行工作。
尝试修改Dockerfile像这些:
FROM ubuntu:latest
RUN apt-get -y update && \
apt-get -y upgrade && \
apt-get install -y sqlite3 libsqlite3-dev apache2 php php-sqlite3 && \
/usr/bin/sqlite3 /etc/apache2/db/test.db && \
apt-get clean autoclean && \
apt-get autoremove --yes && \
rm -rf /var/lib/apt/lists/*
ENV DEBIAN_FRONTEND=noninteractive
CMD ["/bin/bash"]
docker-compose 文件需要像这些:
version: '3'
services:
bdd:
build: /docker/bdd/