Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Docker Cannot link to a non running container

I need to create Rails and Mysql containers with docker-compose. When I try to create links between containers with docker-compose up, I get

Cannot start container 9b271c58cf6aecaf017dadaf5b Cannot link to a non running container: /puma_db_1 AS /puma_web_1/db

Files

Dockerfile

FROM ubuntu:14.04  RUN apt-get -y update RUN apt-get -y install git curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev  RUN apt-get -y install libmysqlclient-dev RUN git clone https://github.com/sstephenson/rbenv.git /root/.rbenv RUN git clone https://github.com/sstephenson/ruby-build.git /root/.rbenv/plugins/ruby-build RUN echo 'eval "$(rbenv init -)"' >> $HOME/.profile RUN echo 'eval "$(rbenv init -)"' >> $HOME/.bashrc  RUN rbenv install 2.1.5 RUN rbenv global 2.1.5 RUN gem install rails -v 4.0.11  ADD app.tar.gz /home/ WORKDIR /home/app  RUN bundle install EXPOSE 3000 CMD ["rails", "server", "-b", "0.0.0.0"] 

docker-compose.yml

db:     image: mysql:latest   environment:     MYSQL_DATABASE: app_development     MYSQL_USER: mysql     DATABASE_PASSWORD: onetwo     ROOT_PASSWORD: onetwo web:   build: .   command: bundle exec rails s -p 3000 -b '0.0.0.0'   ports:     - "4000:3000"   links:     - db 
like image 219
kalelc Avatar asked Aug 21 '15 18:08

kalelc


2 Answers

Most likely the db container fails to start.

Make sure it works fine by starting only the db service. You can do that with the following command:

docker-compose up db 

If it appears the MySQL service is not running after this command, then you found the origin of your problem.

like image 128
Thomasleveil Avatar answered Sep 28 '22 14:09

Thomasleveil


Not specifically related to MySQL but more the message ERROR: for <service> Cannot link to a non running container: /b2f21b869ccc_<dependency>_1 AS /<service>_1/<dependency>_1

I found that the dependency container had a different id than the one given (b2f21b869ccc in my example above)

Solved simply by running docker-compose up -d --force-recreate <service>

which caused it to recreate the dependency and fix the link to the correct docker id

like image 44
Mike Graf Avatar answered Sep 28 '22 16:09

Mike Graf