libresh / libre.sh

Moved to https://lab.libreho.st/libre.sh/compose.libre.sh
GNU Affero General Public License v3.0
189 stars 22 forks source link

Start application service failed with exec format error #142

Closed lolozere closed 7 years ago

lolozere commented 7 years ago

Hi,

I'am trying your solution to host docker application. I'm the founder of a group hosting websites and tools with a donation model for social innovation initiative. I developped one year ago a home-made solution. I'm creating a benchmark of Libre.sh features against ours to evaluate the required work if we decide to migrate to Libre.sh and join our technical efforts.

But I fail to start an application with my Libre.sh virtual machine.

I have installed a virtual box machine with coreos and Libre.sh and I have created a new application with the following command

sudo libre provision -a github.com/indiehosters/wordpress -u wordpress.coreos.dv -s

And got the message

Cloning into '/data/domains/wordpress.coreos.dv'...
remote: Counting objects: 103, done.
remote: Total 103 (delta 0), reused 0 (delta 0), pack-reused 103
Receiving objects: 100% (103/103), 26.50 KiB | 0 bytes/s, done.
Resolving deltas: 100% (44/44), done.
Checking connectivity... done.
2016-12-27 10:15:34 UTC [  warning] you have no email server setup, we'll print a random configuration in your application. Make sure to check the parameters for your app to send proper emails.
2016-12-27 10:15:34 UTC [  warning] To stop having this warning, please configure your libre.sh to be abble to create email accounts.
2016-12-27 10:15:34 UTC [  warning] You can also contact support@indie.host to setup an email account for you
++ xargs
++ head -c 20
++ tr -dc A-Za-z0-9_
+ MYSQL_ROOT_PASSWORD=Yj8Rn_on0mSWcYGK73pM
+ echo MYSQL_ROOT_PASSWORD=Yj8Rn_on0mSWcYGK73pM
+ echo MAIL_PASS=randompass
+ echo MAIL_USER=example@indie.host
+ echo MAIL_HOST=mail.indie.host
+ echo MAIL_PORT=587
+ echo MAIL_SECURITY=tls
Created symlink /etc/systemd/system/multi-user.target.wants/u@wordpress.coreos.dv.service → /etc/systemd/system/u@.service.

And I have started the application

cd /data/domains/wordpress.coreos.dv/
sudo libre start

But it failed with this message

Dec 27 10:29:25 coreos.local systemd[2573]: u@wordpress.coreos.dv.service: Failed at step EXEC spawning /opt/bin/docker-compose: Exec format error
Dec 27 10:29:25 coreos.local systemd[1]: Started u-wordpress.coreos.dv.
Dec 27 10:29:25 coreos.local bash[2575]: + VIRTUAL_HOST=wordpress.coreos.dv
Dec 27 10:29:25 coreos.local bash[2575]: + /opt/bin/docker-compose up
Dec 27 10:29:25 coreos.local systemd[2579]: u@wordpress.coreos.dv.service: Failed at step EXEC spawning /opt/bin/docker-compose: Exec format error
Dec 27 10:29:25 coreos.local systemd[1]: u@wordpress.coreos.dv.service: Control process exited, code=exited status=203
Dec 27 10:29:25 coreos.local systemd[1]: u@wordpress.coreos.dv.service: Unit entered failed state.
Dec 27 10:29:25 coreos.local systemd[1]: u@wordpress.coreos.dv.service: Failed with result 'exit-code'.

Is it a bug or a mistake I have done ?

pierreozoux commented 7 years ago

Hey! Thanks for your interest!

I see this line:

Failed at step EXEC spawning /opt/bin/docker-compose: Exec format error

Are you sure docker-compose is installed on your system?

ls /opt/bin/docker-compose

It should be somewhere in install instruction. https://github.com/indiehosters/libre.sh/blob/master/user_data#L62-L74

On 27-12-2016 11:03, Laurent Chedanne wrote:

Hi,

I'am trying your solution to host docker application. I'm the founder of a group http://soletic.org hosting websites and tools with a donation model for social innovation initiative. I developped one year ago a home-made solution https://github.com/Soletic/docker-tools. I'm creating a benchmark of Libre.sh features against ours to evaluate the required work if we decide to migrate to Libre.sh and join our technical efforts.

But I fail to start an application with my Libre.sh virtual machine.

I have installed a virtual box machine with coreos and Libre.sh and I have created a new application with the following command

|sudo libre provision -a github.com/indiehosters/wordpress -u wordpress.coreos.dv -s |

And got the message

|Cloning into '/data/domains/wordpress.coreos.dv'... remote: Counting objects: 103, done. remote: Total 103 (delta 0), reused 0 (delta 0), pack-reused 103 Receiving objects: 100% (103/103), 26.50 KiB | 0 bytes/s, done. Resolving deltas: 100% (44/44), done. Checking connectivity... done. 2016-12-27 10:15:34 UTC [ warning] you have no email server setup, we'll print a random configuration in your application. Make sure to check the parameters for your app to send proper emails. 2016-12-27 10:15:34 UTC [ warning] To stop having this warning, please configure your libre.sh to be abble to create email accounts. 2016-12-27 10:15:34 UTC [ warning] You can also contact support@indie.host to setup an email account for you ++ xargs ++ head -c 20 ++ tr -dc A-Za-z0-9_ + MYSQL_ROOT_PASSWORD=Yj8Rn_on0mSWcYGK73pM + echo MYSQL_ROOT_PASSWORD=Yj8Rn_on0mSWcYGK73pM + echo MAIL_PASS=randompass + echo MAIL_USER=example@indie.host + echo MAIL_HOST=mail.indie.host + echo MAIL_PORT=587 + echo MAIL_SECURITY=tls Created symlink /etc/systemd/system/multi-user.target.wants/u@wordpress.coreos.dv.service → /etc/systemd/system/u@.service. |

And I have started the application

|cd /data/domains/wordpress.coreos.dv/ sudo libre start |

But it failed with this message

|Dec 27 10:29:25 coreos.local systemd[2573]: u@wordpress.coreos.dv.service: Failed at step EXEC spawning /opt/bin/docker-compose: Exec format error Dec 27 10:29:25 coreos.local systemd[1]: Started u-wordpress.coreos.dv. Dec 27 10:29:25 coreos.local bash[2575]: + VIRTUAL_HOST=wordpress.coreos.dv Dec 27 10:29:25 coreos.local bash[2575]: + /opt/bin/docker-compose up Dec 27 10:29:25 coreos.local systemd[2579]: u@wordpress.coreos.dv.service: Failed at step EXEC spawning /opt/bin/docker-compose: Exec format error Dec 27 10:29:25 coreos.local systemd[1]: u@wordpress.coreos.dv.service: Control process exited, code=exited status=203 Dec 27 10:29:25 coreos.local systemd[1]: u@wordpress.coreos.dv.service: Unit entered failed state. Dec 27 10:29:25 coreos.local systemd[1]: u@wordpress.coreos.dv.service: Failed with result 'exit-code'. |

Is it a bug or a mistake I have done ?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/indiehosters/libre.sh/issues/142, or mute the thread https://github.com/notifications/unsubscribe-auth/ABxvHeLM6vnsE4siYkKavQB-hx_ac5T-ks5rMPCGgaJpZM4LWM8X.

-- I use PGP to protect our privacy, if you want to know more, you can follow this https://emailselfdefense.fsf.org/en/

If you have further questions, please do not hesitate to ask. You can verify my public key here: https://keybase.io/pierreozoux

pierreozoux commented 7 years ago

You should come to the chat we provide support there too :)

https://chat.indie.host/channel/libre.sh

Also, I just thought a bit more, you'll have troubles, libre.sh requires real domain names to provision certs. You can't host anything without certs, so I guess you'll hit so issues.

Did you install with the hetzner guide?

I just checked Sol^TIC, really similar to IndieHosters :)

And I checked your docker-tools repo, we should definitely collaborate! If you need anything to get started with libre.sh, please ask, I'd be more than happy to help bootstrap!

Send me an email if you prefer (in french): pierre@ozoux.net!

I have many questions for you too! do you provide ssh? ftp? phpmyadmin? Do you have one or many mysql instances? How do you limit mysql ram consumption?

Cheers :) PS, and please register yourself here: https://github.com/indiehosters/awesome-librehosters

lolozere commented 7 years ago

Yes I have docker-compose installed.

coreuser@coreos ~ $ ls /opt/bin/docker-compose
/opt/bin/docker-compose
coreuser@coreos ~ $

I tried

coreuser@coreos ~ $ cd /data/domains/wordpress.coreos.dv/
coreuser@coreos ~ $ docker-compose up

But no messages and nothing happened (docker ps is empty)

Here my user_data file : https://gist.github.com/lolozere/fdad1d2c739ad4727e6ee48e0c0b7959

I'm currently on vacation until the first of January and got two days to work on Soletic. I don't know when I am available again to work on Soletic and Libre.sh. I work for my own and I'll be very busy in January but I will try to contact you and plan a meeting. Last question : how do you bootstrap a local Libre.sh to develop and test app/modules if libre.sh requires real domain names to provision certs and run ? If it's hard to answer, I will contact you to plan a special meeting. I think it will be faster :-)

To answer your questions

pierreozoux commented 7 years ago

could you:

cd /data/domains/wordpress.coreos.dv
ls
cat docker-compose.yml

you should be able to docker-compose up and see things moving :)

To develop, I use a digital ocean droplet, and I point dns * (of a test domain) to the ip address. But yeah, it would be nice to have something to test.

About RAM limitation to mysql, I tried once, but mysql once it couldn't have more RAM, it just crashed. You didn't hit that? What is your limit on MySQL?

Yes, we should have a talk in January :)

lolozere commented 7 years ago

I don't know but this morning I still tried the docker-compose up and got a new message

ERROR: Network lb_web declared as external, but could not be found. Please create the network manually using `docker network create lb_web` and try again.

So I did it and run docker-compose up. I got

app_1  | /run.sh: line 35: /entrypoint.sh: No such file or directory
wordpresscoreosdv_app_1 exited with code 127
web_1  | 2016/12/28 08:22:18 [emerg] 1#1: host not found in upstream "app:9000" in /etc/nginx/nginx.conf:17
web_1  | nginx: [emerg] host not found in upstream "app:9000" in /etc/nginx/nginx.conf:17
wordpresscoreosdv_web_1 exited with code 1

There is no entrypoint.sh in the image source of indieshosters/wordpress and wordpress:fpm. Do you have a bug with your wordpress image ?

So I edited the docker-compose.yml and switched the app image used from indiehosters/wordpress to wordpress:fpm (the image extended by indiehosters/wordpress). I added the env vars WORDPRESS_DBPASSWORD to ./env file (unlike the documentation of https://hub.docker.com//wordpress/ , the image didn't use the MYSQL_ROOT_PASSWORD. Why ? I don't know).

And it works. Result of docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
02f13a92127e        nginx               "nginx -g 'daemon off"   13 minutes ago      Up 13 minutes       80/tcp, 443/tcp     wordpresscoreosdv_web_1
5d9272429674        wordpress:fpm       "docker-entrypoint.sh"   13 minutes ago      Up 13 minutes       9000/tcp            wordpresscoreosdv_app_1
22e0e60f196f        mysql               "docker-entrypoint.sh"   13 minutes ago      Up 13 minutes       3306/tcp            wordpresscoreosdv_db_1

Now I have to investigate why I got a connection refused with http:/wordpress.coreos.dv. I really want to success a local installation because I want to work without a required internet connection. So I persist.

About RAM limitation to mysql, I tried once, but mysql once it couldn't have more RAM, it just crashed. You didn't hit that? What is your limit on MySQL?

It is quite normal for a crash. We use a 512m limit for mysql and a 1g limit for the php server. But each VPS deployed is small.

mysql:
  extends:
    file: base.yml
    service: mysql
  cpuset: "2"
  cpu_shares: 128
  mem_limit: 512m
  memswap_limit: 512m

I close the Issue and see you on January to have a talk !

lolozere commented 7 years ago

Information point : It works ! I have just added the port in docker-compose.yml. So I will contact you on january. Belle fin d'année.

lolozere commented 7 years ago

Information point : I have created a simple module to setup a local http proxy without certificates requirements.

pierreozoux commented 7 years ago

Thanks for your detailed explanation!

Yes, the wordpress image was broken, I fixed it.

About Mysql, then I'll have to give another try with 512MB instead of 300MB :)

Happy new year, and let's try to schedule a call end of January. Do youy go to FOSDEM?

Cheers!

Pierre

On 28-12-2016 10:31, Laurent Chedanne wrote:

Information point : I have created a simple module to setup a local http proxy https://github.com/Soletic/libre.sh-simple-httpproxy without certificates requirements.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/indiehosters/libre.sh/issues/142#issuecomment-269458414, or mute the thread https://github.com/notifications/unsubscribe-auth/ABxvHX_HwhfjA5lQxVqV1074cDYsHaM-ks5rMjpzgaJpZM4LWM8X.

-- I use PGP to protect our privacy, if you want to know more, you can follow this https://emailselfdefense.fsf.org/en/

If you have further questions, please do not hesitate to ask. You can verify my public key here: https://keybase.io/pierreozoux

lolozere commented 7 years ago

No I can't go to FOSDEM, family reasons, but good reasons. Talk you soon.