Faild to run Custom Discourse Docker images from Different VM

Hi Team,
I am not able to run the discourse docker image from my local. I have done some custom changes and created new image. With the new image I am not able to run.

1)Configured Azure VM with ubuntu.
2)Cloned the discourse docker image from GitHub.
3)Configured app.yml file and give the DISCOURSE_HOSTNAME: as my VM name.
4) Added plugins and Configured SMTP details.
5) After rebuild the app I can able to run the image.
6) Then I have push the container image to DockerHub.
7) Now when I try to pull the image from Dockerhub I can able to pull it. But I am not able to run it.
I am getting below error while run the docker image.

Already up-to-date.
I, [2019-03-22T06:49:47.506242 #15] INFO – : Loading --stdin
/pups/lib/pups/config.rb:23:in initialize': undefined method’ for nil:NilClass (NoMethodError)
from /pups/lib/pups/cli.rb:27:in new' from /pups/lib/pups/cli.rb:27:inrun’
from /pups/bin/pups:8:in `’

Could you please help us to fix this issue. I want to run this image from other VM.

When I run with below command its coming like this. Even in same VM its coming like this.
C:\Muthu>docker run -i -t muthuowndockerhub/personalrepo:Discourse
Already up-to-date.
I, [2019-03-22T08:35:01.578322 #14] INFO – : Loading --stdin

Could someone help me where I have done the mistake. I want to run the dev server discourse image to testing server discourse image. For that what configuration changes I have to do.

You need to pass a bunch of environment variables to make it work. You can look at the last line that gets printed when you

./launcher start app

As an example

1 Like

Thanks for the response @pfaffman. you mean to say I have to pass the below environment variables while creating the image ?

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e 
UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e 
RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e 
DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e DISCOURSE_HOSTNAME=myhostname@hostname -e 
DISCOURSE_DEVELOPER_EMAILS=myemailID -e DISCOURSE_SMTP_ADDRESS=smtp.test.com -e DISCOURSE_SMTP_PORT=123 -e 
DISCOURSE_SMTP_USER_NAME=myusername -e 'DISCOURSE_SMTP_PASSWORD=mypin' -e DISCOURSE_SMTP_ENABLE_START_TLS=true -h 
samplePortal-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared 
-v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:05:37:21:8a:24 local_discourse/app /sbin/boot

*changes some of the values like emailID and password

No. YOu need to pass those environment variables when you start the container running that image.

2 Likes

Hi @pfaffman thanks for the response. I might be done some mistakes let me explain what I have done.

I have cloned the discourse docker image in VM and modified some CSS files and run ./launcher rebuild app. I got the new image, then I have tag that image and pushed to my dockerhub.
Finally I have pulled the image to my local(windows). Then I ran below command.
C:\Users\Muthu>docker run -i -t muthuowndockerhub/discourse:v3
Already up-to-date.
I, [2019-03-22T15:19:58.575263 #14] INFO – : Loading --stdin

In the another command when I tried with the docker ps I got the container as well.
C:\Users\Muthu>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dafbc05514c4 muthuowndockerhub/discourse:v3 “/bin/bash -c 'cd /p…” 28 seconds ago Up 26 seconds gallant_aryabhata

Then I inspected the container and I got the environment values (I haven’t passed before). After that I have stopped the container which is running inside my VM and tried to access the hostname which is configured inside app.yml, but its not working.

I know I have not done some steps and I might missed some config values. if you could help me I would be very grateful.

Thanks a lot for your time.

And that would erase those changes.

I’m not sure what you’re trying to do, but it’s beyond what’s typically supported here.

If you’ve got a budget I’ll be happy to help out next week. See https://literatecomputing.com for contact info.

I have configured customized discourse in dev VM, and I want to take the dev image and put to the testing VM. For that I am not able to run the dev discourse docker image in testing VM.

And Sorry I don’t have any budget :worried:

1 Like

Anyone is having idea of why I am getting the below error while exec the container.

:~# docker exec -it 7c4eedd956d9 /sbin/boot
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/anacron
anacron: Can't chdir to /var/spool/anacron: No such file or directory
run-parts: /etc/runit/1.d/anacron exited with return code 1
Started runsvdir, PID is 341
runsv cron: fatal: unable to lock supervise/lock: temporary failure
runsv rsyslog: fatal: unable to lock supervise/lock: temporary failure
runsv nginx: fatal: unable to lock supervise/lock: temporary failure
runsv unicorn: fatal: unable to lock supervise/lock: temporary failure
runsv redis: fatal: unable to lock supervise/lock: temporary failure
runsv postgres: fatal: unable to lock supervise/lock: temporary failure

I’m sorry this is way outside the scope of what we support here, hence the #unsupported-install tag.

Your choices are to use a method we do support, offer a budget via #marketplace, or muddle along by yourself.

5 Likes