unbit / uwsgi-docker

uWSGI plugin for integration with Docker
MIT License
66 stars 8 forks source link

unable to build docker plugin #3

Closed anentropic closed 9 years ago

anentropic commented 9 years ago
Step 10 : RUN uwsgi --build-plugin https://github.com/unbit/uwsgi-docker
 ---> Running in d744eb581751
*** uWSGI building and linking plugin from https://github.com/unbit/uwsgi-docker ***
Cloning into 'uwsgi-docker'...
[x86_64-linux-gnu-gcc -pthread] docker_plugin.so
/root/uwsgi-docker/docker.c: In function 'docker_run':
/root/uwsgi-docker/docker.c:309:2: error: implicit declaration of function 'vassal_attr_get' [-Werror=implicit-function-declaration]
  char *proxy_attr = vassal_attr_get(ui, "docker-proxy");
  ^
/root/uwsgi-docker/docker.c:309:21: error: initialization makes pointer from integer without a cast [-Werror]
  char *proxy_attr = vassal_attr_get(ui, "docker-proxy");
                     ^
/root/uwsgi-docker/docker.c:310:21: error: initialization makes pointer from integer without a cast [-Werror]
  char *image_attr = vassal_attr_get(ui, "docker-image");
                     ^
/root/uwsgi-docker/docker.c:354:24: error: initialization makes pointer from integer without a cast [-Werror]
  char *docker_socket = vassal_attr_get(ui, "docker-socket");
                        ^
/root/uwsgi-docker/docker.c:364:10: error: implicit declaration of function 'uswgi_error' [-Werror=implicit-function-declaration]
          uswgi_error("error binding docker-socket");
          ^
/root/uwsgi-docker/docker.c:385:25: error: initialization makes pointer from integer without a cast [-Werror]
  char *docker_workdir = vassal_attr_get(ui, "docker-workdir");
                         ^
/root/uwsgi-docker/docker.c:390:26: error: initialization makes pointer from integer without a cast [-Werror]
  char *docker_hostname = vassal_attr_get(ui, "docker-hostname");
                          ^
/root/uwsgi-docker/docker.c:395:24: error: initialization makes pointer from integer without a cast [-Werror]
  char *docker_memory = vassal_attr_get(ui, "docker-memory");
                        ^
/root/uwsgi-docker/docker.c:400:22: error: initialization makes pointer from integer without a cast [-Werror]
  char *docker_swap = vassal_attr_get(ui, "docker-swap");
                      ^
/root/uwsgi-docker/docker.c:405:22: error: initialization makes pointer from integer without a cast [-Werror]
  char *docker_user = vassal_attr_get(ui, "docker-user");
                      ^
/root/uwsgi-docker/docker.c:412:2: error: implicit declaration of function 'vassal_attr_get_multi' [-Werror=implicit-function-declaration]
  if (vassal_attr_get_multi(ui, "docker-env", docker_add_item_to_array, env)) {
  ^
/root/uwsgi-docker/docker.c:492:25: error: initialization makes pointer from integer without a cast [-Werror]
  char *docker_cidfile = vassal_attr_get(ui, "docker-cidfile");
                         ^
/root/uwsgi-docker/docker.c:539:30: error: initialization makes pointer from integer without a cast [-Werror]
  char *docker_network_mode = vassal_attr_get(ui, "docker-network-mode");
                              ^
/root/uwsgi-docker/docker.c: In function 'docker_setup':
/root/uwsgi-docker/docker.c:581:8: error: 'struct uwsgi_server' has no member named 'emperor_force_config_pipe'
   uwsgi.emperor_force_config_pipe = 1;
        ^
/root/uwsgi-docker/docker.c:582:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-proxy");
                               ^
/root/uwsgi-docker/docker.c:583:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-image");
                               ^
/root/uwsgi-docker/docker.c:584:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-port");
                               ^
/root/uwsgi-docker/docker.c:585:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-socket");
                               ^
/root/uwsgi-docker/docker.c:586:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-workdir");
                               ^
/root/uwsgi-docker/docker.c:587:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-hostname");
                               ^
/root/uwsgi-docker/docker.c:588:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-memory");
                               ^
/root/uwsgi-docker/docker.c:589:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-swap");
                               ^
/root/uwsgi-docker/docker.c:590:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-mount");
                               ^
/root/uwsgi-docker/docker.c:591:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-dns");
                               ^
/root/uwsgi-docker/docker.c:592:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-env");
                               ^
/root/uwsgi-docker/docker.c:593:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-user");
                               ^
/root/uwsgi-docker/docker.c:594:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-cidfile");
                               ^
/root/uwsgi-docker/docker.c:595:31: error: 'struct uwsgi_server' has no member named 'emperor_collect_attributes'
   uwsgi_string_new_list(&uwsgi.emperor_collect_attributes, "docker-network-mode");
                               ^
/root/uwsgi-docker/docker.c: At top level:
/root/uwsgi-docker/docker.c:607:2: error: initialization from incompatible pointer type [-Werror]
  .vassal_before_exec = docker_run,
  ^
/root/uwsgi-docker/docker.c:607:2: error: (near initialization for 'docker_plugin.vassal_before_exec') [-Werror]
cc1: all warnings being treated as errors
*** unable to build docker plugin ***
2014/11/21 17:15:12 The command [/bin/sh -c uwsgi --build-plugin https://github.com/unbit/uwsgi-docker] returned a non-zero code: 1
unbit commented 9 years ago

you need uwsgi 2.1 to build it (vassal_attr_get is a 2.1 api function)

anentropic commented 9 years ago

I got uwsgi via:

RUN curl http://uwsgi.it/install | bash -s psgi /usr/bin/uwsgi

that's not 2.1? how do I get 2.1?

unbit commented 9 years ago

nope, that procedure always give the latest stable. Take the master from github, it is already used in production by lot of companies

anentropic commented 9 years ago

I don't even know where I found that install command now, I thought it was on the readme of this plugin :)

ok I have installed the master version in my docker image via:

RUN apt-get install -y libperl-dev
RUN curl -o /tmp/uwsgi_head.tar.gz -L https://github.com/unbit/uwsgi/tarball/master/
RUN mkdir uwsgi_head
RUN tar zvxC uwsgi_head --strip-components=1 -f /tmp/uwsgi_head.tar.gz
WORKDIR uwsgi_head
RUN UWSGI_PROFILE="default" UWSGI_BIN_NAME="/usr/bin/uwsgi" make

now I get this error:

Step 8 : RUN uwsgi --build-plugin https://github.com/unbit/uwsgi-docker
 ---> Running in 7be6dcefde72
*** uWSGI building and linking plugin from https://github.com/unbit/uwsgi-docker ***
Cloning into 'uwsgi-docker'...
[x86_64-linux-gnu-gcc -pthread] docker_plugin.so
/root/uwsgi_head/uwsgi-docker/docker.c: In function 'docker_run':
/root/uwsgi_head/uwsgi-docker/docker.c:364:10: error: implicit declaration of function 'uswgi_error' [-Werror=implicit-function-declaration]
          uswgi_error("error binding docker-socket");
          ^
cc1: all warnings being treated as errors
*** unable to build docker plugin ***
2014/11/21 18:06:43 The command [/bin/sh -c uwsgi --build-plugin https://github.com/unbit/uwsgi-docker] returned a non-zero code: 1
unbit commented 9 years ago

a stupid typo :) if you rerun the procedure it should work

anentropic commented 9 years ago

it did! thanks for your help!