Home > other >  how to use ports inside alpine linux docker
how to use ports inside alpine linux docker

Time:12-18

is there any way i can use redis service for my nodejs, i'am using alpine docker and somehow my node-redis client is not able to connect to redis (it says "can not connect to 127.0.0.1:6479"), i've tried many thing but it is not working, and i want to achieve by only docker file not docker-compose. here is my docker file code

FROM alpine
RUN apk add --update nodejs npm redis
EXPOSE 6379 9000
WORKDIR /server
COPY . /server/
RUN npm install
RUN redis-server &
CMD npm start

CodePudding user response:

You could run multiple commands in one Docker container, but that's a bad practice. You could do this by having your npm start run a script that runs both your server and Redis, or using a package like concurrently or npm-run-all. Docker good practice is to have one executable per container, though, so the Docker-correct thing to do would be to put Redis in a separate container.

CodePudding user response:

Your issue is RUN redis-server &. RUN statements are run at build time, so when your container starts up, the redis-server process isn't there anymore. You need to start it at run-time on the CMD statement like this

CMD redis-server & npm start

But as Zac points out, the 'docker way' to do it is to run Redis is a separate container. There are ready made redis images on docker hub you can use.

  • Related