Nothing displayed on launcher rebuild

I’m trying to follow the guide for adding support for MySQL gem to the app container via the tutorial How to use the bbpress import script - or any other import script with mysql dependency

However, when I run the following, it just halts.

> ./launcher stop app
> ./launcher rebuild import


Until I kill the process with CTRL+C

Note: I have waited more than couple of hours for it to show any response but nothing

And when I inspect the docker containers, it shows a new (corrupt) stopped container

I’m not sure what am I doing wrong, which leads to this behavior.

My containers/import.yml file contents (stripped out the untocuhed part):

The server is hosted on DO and when I restart the docker service, it returns back the original running app container.

P.S: ./launcher rebuild app works fine though.

1 Like

Maybe do a ./launcher stop app; before trying to build import?

EDIT:

Darn.

Yes, obviously I’m running the rebuild following the stop sub command. Let me edit my question.

OK I figured. After I stopped the container

> ./launcher stop app

I also removed the container docker rm app and tried to rebuild thereafter, and it proceeded further.

Now, when I get to the point where it’s using the mysql-dep template, the following error is thrown.

...
Setting up libgmp-dev:amd64 (2:6.1.2+dfsg-4) ...
Setting up nettle-dev:amd64 (3.4.1-1) ...
Setting up libgnutls28-dev:amd64 (3.6.7-4+deb10u2) ...
Setting up libmariadb-dev (1:10.3.22-0+deb10u1) ...
Processing triggers for libc-bin (2.28-10) ...

I, [2020-02-27T16:51:33.937186 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without "test development"'
[DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set path 'vendor/bundle'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set without 'test development'`, and stop using this flag
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.

If this is a development machine, remove the /var/www/discourse/Gemfile freeze 
by running `bundle config unset deployment`.

The dependencies in your gemfile changed

You have added to the Gemfile:
* mysql2
I, [2020-02-27T16:51:34.670930 #1]  INFO -- : 
I, [2020-02-27T16:51:34.672542 #1]  INFO -- : Terminating async processes
I, [2020-02-27T16:51:34.673101 #1]  INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/10/bin/postmaster -D /etc/postgresql/10/main pid: 49
I, [2020-02-27T16:51:34.673593 #1]  INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 166
2020-02-27 16:51:34.674 UTC [49] LOG:  received fast shutdown request
166:signal-handler (1582822294) Received SIGTERM scheduling shutdown...
2020-02-27 16:51:34.682 UTC [49] LOG:  aborting any active transactions
166:M 27 Feb 2020 16:51:34.693 # User requested shutdown...
166:M 27 Feb 2020 16:51:34.695 * Saving the final RDB snapshot before exiting.
2020-02-27 16:51:34.698 UTC [49] LOG:  worker process: logical replication launcher (PID 58) exited with exit code 1
2020-02-27 16:51:34.701 UTC [53] LOG:  shutting down
166:M 27 Feb 2020 16:51:34.741 * DB saved on disk
166:M 27 Feb 2020 16:51:34.742 # Redis is now ready to exit, bye bye...
2020-02-27 16:51:34.786 UTC [49] LOG:  database system is shut down


FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development' failed with return #<Process::Status: pid 970 exit 16>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "cmd"=>["echo \"gem 'mysql2'\" >> Gemfile", "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y libmariadb-dev", "su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without test development'"]}
75b27d60e1dc3a4b5d76bc75f2874ebf405fe29edfebec3cb809233f7b01ec48
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

Does anyone know anything about this error please?

4 Likes

I’m having similar issues. This seems the same as Failed to bootstrap using import template.

And I meant not to try to upgrade that container because I’d seen this, but I tried anyway because of another strange error. . .

EDIT: I added the

su discourse -c 'bundle config unset deployment'

To the template before the

 su discourse -c 'bundle install --no-deployment --path vendor/bundle --jobs 4 --without "test development"'

line and it’s working. (But, alas, didn’t solve my unrelated problem).

3 Likes

I literally just used this template last week and had no issues with it. Quite odd but it’s worth a look next week. I’ll add it to my list.

2 Likes

Me too! But I guess something for upgraded?

3 Likes

In addition to the comment, I also had to skip launcher prerequisites

> ./launcher rebuild import --skip-prereqs

and following the suggestion of @pfaffman

the image built successfully. :white_check_mark:

4 Likes

Looks like this is resolved here – @pfaffman @rahilqf can you confirm?

https://github.com/discourse/discourse_docker/commit/bb9a17362619770e5ae0f416c87d321414c8d0c7

6 Likes

Looks like it. Thanks very much!

Now if there were only a template that would add php-serialize. . .

3 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.