unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Error when trying to run "docker-compose up"
@ 2024-01-17 19:43 Rodrigo Morales
  2024-01-17 20:53 ` Rodrigo Morales
  0 siblings, 1 reply; 8+ messages in thread
From: Rodrigo Morales @ 2024-01-17 19:43 UTC (permalink / raw)
  To: help-guix


I'm getting the following error when trying to run "docker-compose up"

#+BEGIN_SRC text
$ docker-compose up
/gnu/store/c4k00zq96fx1zpbvpd5yrf7q32f7pgcg-python-paramiko-2.7.2/lib/python3.10/site-packages/paramiko/transport.py:219: CryptographyDeprecationWarning: Blowfish has been deprecated
  "class": algorithms.Blowfish,
Traceback (most recent call last):
  File "/gnu/store/pcb6smd9jr0wjws3n1n87kqqgia4h86w-python-docker-5.0.3/lib/python3.10/site-packages/docker/api/client.py", line 214, in _retrieve_server_version
    return self.version(api_version=False)["ApiVersion"]
  File "/gnu/store/pcb6smd9jr0wjws3n1n87kqqgia4h86w-python-docker-5.0.3/lib/python3.10/site-packages/docker/api/daemon.py", line 181, in version
    return self._result(self._get(url), json=True)
  File "/gnu/store/pcb6smd9jr0wjws3n1n87kqqgia4h86w-python-docker-5.0.3/lib/python3.10/site-packages/docker/utils/decorators.py", line 46, in inner
    return f(self, *args, **kwargs)
  File "/gnu/store/pcb6smd9jr0wjws3n1n87kqqgia4h86w-python-docker-5.0.3/lib/python3.10/site-packages/docker/api/client.py", line 237, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
  File "/home/rdrg/.local/lib/python3.10/site-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
  File "/home/rdrg/.local/lib/python3.10/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/rdrg/.local/lib/python3.10/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
  File "/home/rdrg/.local/lib/python3.10/site-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
  File "/home/rdrg/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 790, in urlopen
    response = self._make_request(
  File "/home/rdrg/.local/lib/python3.10/site-packages/urllib3/connectionpool.py", line 496, in _make_request
    conn.request(
TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/gnu/store/fjm7a3lib7r7rs33g8r1d2kk7wb86b14-docker-compose-1.29.2/bin/.docker-compose-real", line 33, in <module>
    sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
  File "/home/rdrg/.guix-profile/lib/python3.10/site-packages/compose/cli/main.py", line 81, in main
    command_func()
  File "/home/rdrg/.guix-profile/lib/python3.10/site-packages/compose/cli/main.py", line 200, in perform_command
    project = project_from_options('.', options)
  File "/home/rdrg/.guix-profile/lib/python3.10/site-packages/compose/cli/command.py", line 60, in project_from_options
    return get_project(
  File "/home/rdrg/.guix-profile/lib/python3.10/site-packages/compose/cli/command.py", line 152, in get_project
    client = get_client(
  File "/home/rdrg/.guix-profile/lib/python3.10/site-packages/compose/cli/docker_client.py", line 41, in get_client
    client = docker_client(
  File "/home/rdrg/.guix-profile/lib/python3.10/site-packages/compose/cli/docker_client.py", line 170, in docker_client
    client = APIClient(use_ssh_client=not use_paramiko_ssh, **kwargs)
  File "/gnu/store/pcb6smd9jr0wjws3n1n87kqqgia4h86w-python-docker-5.0.3/lib/python3.10/site-packages/docker/api/client.py", line 197, in __init__
    self._version = self._retrieve_server_version()
  File "/gnu/store/pcb6smd9jr0wjws3n1n87kqqgia4h86w-python-docker-5.0.3/lib/python3.10/site-packages/docker/api/client.py", line 221, in _retrieve_server_version
    raise DockerException(
docker.errors.DockerException: Error while fetching server API version: HTTPConnection.request() got an unexpected keyword argument 'chunked'
/tmp/a
$ echo $?
1
#+END_SRC

I'm running the following version of docker and docker-compose

#+BEGIN_SRC text
$ docker --version
Docker version 20.10.25, build
$ echo $?
0
$ docker-compose --version
/gnu/store/c4k00zq96fx1zpbvpd5yrf7q32f7pgcg-python-paramiko-2.7.2/lib/python3.10/site-packages/paramiko/transport.py:219: CryptographyDeprecationWarning: Blowfish has been deprecated
  "class": algorithms.Blowfish,
docker-compose version 1.29.2, build unknown
$ echo $?
0
#+END_SRC

Note the warning in the code block above that is shown when running
=docker-compose --version=. This warning is the same reported as in the
error in the first code block above.

I tried searching the help-guix mailing list archive, but didn't find
anything relevant. Does anyone know what could be the problem?


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Error when trying to run "docker-compose up"
  2024-01-17 19:43 Error when trying to run "docker-compose up" Rodrigo Morales
@ 2024-01-17 20:53 ` Rodrigo Morales
  2024-01-17 21:05   ` Rodrigo Morales
  2024-03-10 19:17   ` Samuel Schmidt
  0 siblings, 2 replies; 8+ messages in thread
From: Rodrigo Morales @ 2024-01-17 20:53 UTC (permalink / raw)
  To: help-guix

Rodrigo Morales <me@rodrigomorales.site> writes:

> Does anyone know what could be the problem?

I found this thread [1] on help-guix from 2019 where a user reports
having errores with docker-compose. A user replies:

#+BEGIN_QUOTE
The root of this problem is that our docker-compose package is *very*
old: it was added in January 2016(!), and has never been updated
since. I guess that proves how unneccessary Docker is once you've
discovered Guix… *ducks*
#+END_QUOTE

Furthermore, I noticed that the version of docker-compose is 1.29.2 and
upstream [2] is at 2.12.0, so even if I fix this problem. I'll be using
an old version of docker-compose. For my use case, it would be more
useful to use the latest version of docker-compose, so if I wanted to
use docker-compose under Guix, I would need for me to write a Guix
package for that version.

I have one question: The user above states that Docker is unnecessary
once you have discovered Guix. I have been using Guix for around 6
months, but I don't see how I could use Guix for running a web server on
a container that uses node.js and postgresql. The reason why I initially
wanted to use docker is because I find it more convenient to run a web
server with node.js and postgresql. Any information on this topic is
appreciated.

[1] https://lists.gnu.org/archive/html/help-guix/2019-06/msg00182.html
[2] https://github.com/docker/compose/releases




^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Error when trying to run "docker-compose up"
  2024-01-17 20:53 ` Rodrigo Morales
@ 2024-01-17 21:05   ` Rodrigo Morales
  2024-01-17 21:30     ` Rodrigo Morales
  2024-03-10 19:17   ` Samuel Schmidt
  1 sibling, 1 reply; 8+ messages in thread
From: Rodrigo Morales @ 2024-01-17 21:05 UTC (permalink / raw)
  To: help-guix

Rodrigo Morales <me@rodrigomorales.site> writes:

> I have one question: The user above states that Docker is unnecessary
> once you have discovered Guix. I have been using Guix for around 6
> months, but I don't see how I could use Guix for running a web server on
> a container that uses node.js and postgresql. The reason why I initially
> wanted to use docker is because I find it more convenient to run a web
> server with node.js and postgresql. Any information on this topic is
> appreciated.

I found a thread [1] in help-guix from November 2020 on port forwarding
for Guix containers.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Error when trying to run "docker-compose up"
  2024-01-17 21:05   ` Rodrigo Morales
@ 2024-01-17 21:30     ` Rodrigo Morales
  0 siblings, 0 replies; 8+ messages in thread
From: Rodrigo Morales @ 2024-01-17 21:30 UTC (permalink / raw)
  To: help-guix

Rodrigo Morales <me@rodrigomorales.site> writes:

> I found a thread [1] in help-guix from November 2020 on port forwarding
> for Guix containers.

[1] https://www.mail-archive.com/help-guix@gnu.org/msg10490.html


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Error when trying to run "docker-compose up"
  2024-01-17 20:53 ` Rodrigo Morales
  2024-01-17 21:05   ` Rodrigo Morales
@ 2024-03-10 19:17   ` Samuel Schmidt
  2024-03-10 19:25     ` Tomas Volf
  2024-03-17 20:16     ` Ian Eure
  1 sibling, 2 replies; 8+ messages in thread
From: Samuel Schmidt @ 2024-03-10 19:17 UTC (permalink / raw)
  To: help-guix, Rodrigo Morales

Hello,

I am facing the same problem, but I have to use docker-compose. 
I guess there are no plans to fix this atm? :/ Or did you find any help regarding this problem?

Am 17.01.2024 um 21:53, Rodrigo Morales <me@rodrigomorales.site> schrieb:Rodrigo Morales <me@rodrigomorales.site> writes:

> Does anyone know what could be the problem?

I found this thread [1] on help-guix from 2019 where a user reports
having errores with docker-compose. A user replies:

#+BEGIN_QUOTE
The root of this problem is that our docker-compose package is very
old: it was added in January 2016(!), and has never been updated
since. I guess that proves how unneccessary Docker is once you've
discovered Guix… ducks
#+END_QUOTE

Furthermore, I noticed that the version of docker-compose is 1.29.2 and
upstream [2] is at 2.12.0, so even if I fix this problem. I'll be using
an old version of docker-compose. For my use case, it would be more
useful to use the latest version of docker-compose, so if I wanted to
use docker-compose under Guix, I would need for me to write a Guix
package for that version.

I have one question: The user above states that Docker is unnecessary
once you have discovered Guix. I have been using Guix for around 6
months, but I don't see how I could use Guix for running a web server on
a container that uses node.js and postgresql. The reason why I initially
wanted to use docker is because I find it more convenient to run a web
server with node.js and postgresql. Any information on this topic is
appreciated.

[1] https://lists.gnu.org/archive/html/help-guix/2019-06/msg00182.html
[2] https://github.com/docker/compose/releases

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Error when trying to run "docker-compose up"
  2024-03-10 19:17   ` Samuel Schmidt
@ 2024-03-10 19:25     ` Tomas Volf
  2024-03-17 20:16     ` Ian Eure
  1 sibling, 0 replies; 8+ messages in thread
From: Tomas Volf @ 2024-03-10 19:25 UTC (permalink / raw)
  To: Samuel Schmidt; +Cc: help-guix, Rodrigo Morales

[-- Attachment #1: Type: text/plain, Size: 507 bytes --]

Hello,

On 2024-03-10 20:17:10 +0100, Samuel Schmidt wrote:
> Hello,
>
> I am facing the same problem, but I have to use docker-compose.
> I guess there are no plans to fix this atm? :/ Or did you find any help regarding this problem?

I guess you can always try to update the docker-compose and send the patch.  If
it works, I sure it will be accepted eventually.

Have a nice day,
Tomas Volf

--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Error when trying to run "docker-compose up"
  2024-03-10 19:17   ` Samuel Schmidt
  2024-03-10 19:25     ` Tomas Volf
@ 2024-03-17 20:16     ` Ian Eure
  2024-03-22 12:27       ` Samuel Schmidt
  1 sibling, 1 reply; 8+ messages in thread
From: Ian Eure @ 2024-03-17 20:16 UTC (permalink / raw)
  To: Samuel Schmidt; +Cc: Rodrigo Morales, help-guix


Samuel Schmidt <samuel@schmidt-contact.com> writes:

> Hello,
>
> I am facing the same problem, but I have to use docker-compose. 
> I guess there are no plans to fix this atm? :/ Or did you find 
> any help regarding this problem?
>
> Am 17.01.2024 um 21:53, Rodrigo Morales <me@rodrigomorales.site> 
> schrieb:Rodrigo Morales <me@rodrigomorales.site> writes:
>
>> Does anyone know what could be the problem?
>
> I found this thread [1] on help-guix from 2019 where a user 
> reports
> having errores with docker-compose. A user replies:
>
> #+BEGIN_QUOTE
> The root of this problem is that our docker-compose package is 
> very
> old: it was added in January 2016(!), and has never been updated
> since. I guess that proves how unneccessary Docker is once 
> you've
> discovered Guix… ducks
> #+END_QUOTE
>
> Furthermore, I noticed that the version of docker-compose is 
> 1.29.2 and
> upstream [2] is at 2.12.0, so even if I fix this problem. I'll 
> be using
> an old version of docker-compose. For my use case, it would be 
> more
> useful to use the latest version of docker-compose, so if I 
> wanted to
> use docker-compose under Guix, I would need for me to write a 
> Guix
> package for that version.
>

Note also that this is a Docker Compose v1->v2 upgrade.  The newer 
version is completely different from v1, it’s a plugin that 
integrates with the Docker CLI, so you run `docker compose' rather 
than `docker-compose'.  We likely need a completely new package 
for it.


> I have one question: The user above states that Docker is 
> unnecessary
> once you have discovered Guix. I have been using Guix for around 
> 6
> months, but I don't see how I could use Guix for running a web 
> server on
> a container that uses node.js and postgresql. The reason why I 
> initially
> wanted to use docker is because I find it more convenient to run 
> a web
> server with node.js and postgresql. Any information on this 
> topic is
> appreciated.
>

I continue to find both Guix and Docker useful.  While they have 
some overlapping goals, I don’t believe either can replace the 
other.

The closest thing to Docker Compose I’m aware of that you can do 
with pure Guix is create an operating-system with the services you 
want to run, then use `guix system image -t docker 
my-machine-definition.scm' to bundle it as a Docker image.  This 
will bring up a container with the base Guix and those services 
running inside.

This setup lacks some niceties which Compose has:

Everything seems to run in the same namespace[1], so a compromise 
of one service is more likely to compromise the whole system. 
Compose is more resistant to this, since each service runs in its 
own namespace (that is, container).  I don’t know of a Guix 
equivalent for the Compose style of multi-container setup.

I haven’t compared, but I strongly suspect the image sizes are 
larger than an equivalent plain Docker image, due to having the 
base Guix inside them, whereas many Docker images use (or have the 
option of) an Alpine base.

It can only run things with a Guix package and Shepherd service to 
manage it.

Updates are likely slower than vendor-provided Docker images.

It’s also a more involved setup -- you have to write the config, 
and build the image, and load it, and run it.  In fact, I have yet 
to actually make a system image that works *at all*.  Compose is 
dead simple in comparison.

  — Ian

[1]: At least, if Shepherd can run services in their own 
namespaces, like Docker can, the manual is silent on the topic.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Error when trying to run "docker-compose up"
  2024-03-17 20:16     ` Ian Eure
@ 2024-03-22 12:27       ` Samuel Schmidt
  0 siblings, 0 replies; 8+ messages in thread
From: Samuel Schmidt @ 2024-03-22 12:27 UTC (permalink / raw)
  To: Ian Eure; +Cc: help-guix, Rodrigo Morales

Hello,

here is a work around for running docker compose on guix, that worked for me:

'''
mkdir .docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-x86_64 -o $HOME/.docker/cli-plugins/docker-compose
sudo chmod +x $HOME/.docker/cli-plugins/docker-compose
"""
Of course, anyone who wants to run this takes the risk to ensure everything is correct/secure. 

Best,

Samuel

Am 17.03.2024 um 21:16, Ian Eure <ian@retrospec.tv> schrieb:
Samuel Schmidt <samuel@schmidt-contact.com> writes:

> Hello,
>
> I am facing the same problem, but I have to use docker-compose. 
> I guess there are no plans to fix this atm? :/ Or did you find 
> any help regarding this problem?
>
> Am 17.01.2024 um 21:53, Rodrigo Morales <me@rodrigomorales.site> 
> schrieb:Rodrigo Morales <me@rodrigomorales.site> writes:
>
>> Does anyone know what could be the problem?
>
> I found this thread [1] on help-guix from 2019 where a user 
> reports
> having errores with docker-compose. A user replies:
>
> #+BEGIN_QUOTE
> The root of this problem is that our docker-compose package is 
> very
> old: it was added in January 2016(!), and has never been updated
> since. I guess that proves how unneccessary Docker is once 
> you've
> discovered Guix… ducks
> #+END_QUOTE
>
> Furthermore, I noticed that the version of docker-compose is 
> 1.29.2 and
> upstream [2] is at 2.12.0, so even if I fix this problem. I'll 
> be using
> an old version of docker-compose. For my use case, it would be 
> more
> useful to use the latest version of docker-compose, so if I 
> wanted to
> use docker-compose under Guix, I would need for me to write a 
> Guix
> package for that version.
>

Note also that this is a Docker Compose v1->v2 upgrade.  The newer 
version is completely different from v1, it’s a plugin that 
integrates with the Docker CLI, so you run `docker compose' rather 
than `docker-compose'.  We likely need a completely new package 
for it.

> I have one question: The user above states that Docker is 
> unnecessary
> once you have discovered Guix. I have been using Guix for around 
> 6
> months, but I don't see how I could use Guix for running a web 
> server on
> a container that uses node.js and postgresql. The reason why I 
> initially
> wanted to use docker is because I find it more convenient to run 
> a web
> server with node.js and postgresql. Any information on this 
> topic is
> appreciated.
>

I continue to find both Guix and Docker useful.  While they have 
some overlapping goals, I don’t believe either can replace the 
other.

The closest thing to Docker Compose I’m aware of that you can do 
with pure Guix is create an operating-system with the services you 
want to run, then use `guix system image -t docker 
my-machine-definition.scm' to bundle it as a Docker image.  This 
will bring up a container with the base Guix and those services 
running inside.

This setup lacks some niceties which Compose has:

Everything seems to run in the same namespace[1], so a compromise 
of one service is more likely to compromise the whole system. 
Compose is more resistant to this, since each service runs in its 
own namespace (that is, container).  I don’t know of a Guix 
equivalent for the Compose style of multi-container setup.

I haven’t compared, but I strongly suspect the image sizes are 
larger than an equivalent plain Docker image, due to having the 
base Guix inside them, whereas many Docker images use (or have the 
option of) an Alpine base.

It can only run things with a Guix package and Shepherd service to 
manage it.

Updates are likely slower than vendor-provided Docker images.

It’s also a more involved setup -- you have to write the config, 
and build the image, and load it, and run it.  In fact, I have yet 
to actually make a system image that works *at all*.  Compose is 
dead simple in comparison.

  — Ian

[1]: At least, if Shepherd can run services in their own 
namespaces, like Docker can, the manual is silent on the topic.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-03-22 12:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-17 19:43 Error when trying to run "docker-compose up" Rodrigo Morales
2024-01-17 20:53 ` Rodrigo Morales
2024-01-17 21:05   ` Rodrigo Morales
2024-01-17 21:30     ` Rodrigo Morales
2024-03-10 19:17   ` Samuel Schmidt
2024-03-10 19:25     ` Tomas Volf
2024-03-17 20:16     ` Ian Eure
2024-03-22 12:27       ` Samuel Schmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).