Как создать образ докера, используя dockerfile, который включает создание баз данных - PullRequest
2 голосов
/ 03 апреля 2019

Я пытаюсь создать образ докера, используя файл докера.Файл Docker будет содержать создание базы данных.

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y curl
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
RUN apt-get update && apt-get install -y nodejs
RUN node -v
RUN npm -v

RUN apt-get install -y redis-server
RUN redis-server -v

RUN apt-get install -my wget gnupg

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927

RUN echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list

RUN apt-get update
RUN apt-get install -y mongodb-org
RUN mongodb -version


I am unable to start redis server after installation in docker container

1 Ответ

1 голос
/ 03 апреля 2019

Вы должны выставить порты для redis:

EXPOSE 6379

И, пожалуйста, помните, что каждый RUN создает новый слой в вашем изображении, и вы можете сгруппировать все команды оболочки в одну директиву RUN. Это должно быть примерно так:

FROM ubuntu:18.04

RUN apt-get update && apt-get install -y curl wget gnupg && \
    apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927 && \
    echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list && \
    curl -sL https://deb.nodesource.com/setup_8.x | bash - && \
    apt-get update && \
    apt-get install -y nodejs redis-server mongodb-org redis-server && \
    node -v && \
    npm -v && \
    mongodb -version

EXPOSE 6379

И еще одна вещь. Docker позволяет нам запускать только один процесс в одном контейнере, поэтому вам следует разделить ваши Redis, Mongo и другие приложения на разные контейнеры и запустить его с каким-либо оркестратором (таким как docker-swarm или node или kubernetes) или просто с помощью docker-compose.

...