Вы должны выставить порты для 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.