Назад | Перейти на главную страницу

Невозможно запустить Docker на базе Ubuntu или Debian

Я пытался создать свой контейнер на основе Ubuntu (и то же самое с Debian). я использую docker-compose для управления моими контейнерами, и я использую dockerfile чтобы создать свой контейнер.

Когда я использую docker-compose чтобы создать и запустить свой контейнер, у меня всегда был статус Exited 0 (без информации в журналах или на моем экране, и когда я создаю и начинаю с простой команды докера, она работает хорошо.

Вы знаете почему?

Мой файл докеров

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

Спасибо за ответы. Я забыл указать это в своем вопросе, но строка FROM ubuntu:latest присутствовал. Чтобы ответить, я нашел решение с помощью строки CMD, потому что вы можете найти множество версий в Интернете:

CMD ["/usr/sbin/apache2ctl", "-DFOREGROUND"]

Линия CMD ["/bin/bash"] не сработало. У вас есть идеи, почему?

Вам нужно указать, с каким изображением вы хотите работать.

Попробуйте изменить 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/

FROM директива отсутствует в Dockerfile