如何使用包含数据库创建的dockerfile构建docker镜像

问题描述 投票:1回答:1

我正在尝试使用docker文件构建docker镜像。 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
node.js mongodb docker redis aerospike
1个回答
1
投票

您应该为redis公开端口:

EXPOSE 6379

请记住,每个RUN在您的图像中创建一个新图层,您可以在一个RUN指令中对所有shell命令进行分组。它应该是这样的:

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和其他应用程序分离到不同的容器并用一些orchestrator(例如docker-swarm或node或kubernetes)或者docker-compose运行它。

© www.soinside.com 2019 - 2024. All rights reserved.