Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restore automated Docker image publishing #72

Open
sepek opened this issue Oct 4, 2021 · 21 comments
Open

Restore automated Docker image publishing #72

sepek opened this issue Oct 4, 2021 · 21 comments

Comments

@sepek
Copy link

sepek commented Oct 4, 2021

Most recent version of Prosody is 0.11.10 released on 2021-08-03 not available at https://hub.docker.com/r/prosody/prosody/
https://blog.prosody.im/prosody-0.11.10-released/
Please provide an image for it.

@Zash
Copy link
Member

Zash commented Nov 25, 2021

We switched build / CI system and have yet to rig it up with Docker image creation. Sorry for the delay. Hopefully we will get to it before the next release.

@LeSpocky
Copy link
Contributor

Meanwhile 0.11.12 is available with an important security fix. @Zash, @mwild1 could you please look into this? 😇

@mwild1
Copy link
Member

mwild1 commented Jan 17, 2022

Yes, I'll try to look at it later this week. Unfortunately I have an important deadline that I'm working towards in the next couple of days.

A reminder that you should be able to easily use the Dockerfile here to build your own images. That's part of the goal of Docker :)

I'll post back to this issue with news soon, hopefully!

@LeSpocky
Copy link
Contributor

A reminder that you should be able to easily use the Dockerfile here to build your own images. That's part of the goal of Docker :)

Unfortunately, this is not so easy. README.md says:

Note: Using this Dockerfile outside of our build server is not a supported use-case.

The reason is you use a file prosody.deb which is not part of this repo. I guess it is generated by your build server?

@mwild1
Copy link
Member

mwild1 commented Jan 17, 2022

The reason is you use a file prosody.deb which is not part of this repo. I guess it is generated by your build server?

Yes, the .deb file is the same one that's available in our package repository. Here's a direct link to the relevant .deb file for amd64 systems: https://packages.prosody.im/debian/pool/main/p/prosody/prosody_0.11.12-1~buster1_amd64.deb (more here)

@zombiehoffa
Copy link

so this has been broken for a year and a whole major release cycle at this point? Is there any plan to get the docker images in docker hub updating again? Or are the updated ones being hosted elsewhere or something?

@mwild1
Copy link
Member

mwild1 commented Oct 3, 2022

Yes, it has, and yes, there is a desire to get them working again.

It's probably half a day of work, but I'm not finding much time for non-urgent infrastructure tasks right now. I've been working on authentication and account security improvements in Prosody thanks to a grant. If I don't meet milestones for that, I don't get paid, and if I don't get paid I can't pay my bills.

I understand it can be frustrating - it can be frustrating to me! But this is the reality of open-source. We don't have regular steady income to sustain the development of the project. The vast majority of the project activities happen on volunteered time, which is highly variable. Despite the drawbacks, we consider this better than many of the alternatives (Prosody Enterprise Edition, anyone?)

So, expect me to randomly find half a day free to work on this and be pleasantly surprised by a "fixed" notification at some point. But despite a desire to see this done, I can't provide any fixed date for when that might be able to happen.

Meanwhile, instructions for building images yourself are earlier in this thread.

Hope this helps explain the situation, and how such an issue can linger unresolved for so long.

@zombiehoffa
Copy link

How much money do you need to get this fixed more quickly?

@mwild1
Copy link
Member

mwild1 commented Oct 3, 2022

Funding for singular small tasks doesn't really work out for various reasons, primarily because it would be necessary to amass a lot of such tasks to allow a single developer to work and get paid for a month. Long-term funding opportunities such as grants and consulting contracts offer more stability.

In other words, if an open-source developer can choose between a grant or contract that would allow them to work on a range of issues for e.g. 6 months, or an offer of a half-day payment for a single task with no how to earn money through the rest of the month, it's obvious that the former is the only reasonable choice.

If you're really interested in supporting the project in some way, feel free to email [email protected] and we can see what can be worked out. The project itself doesn't have any organization/company behind it, but individual developers may be up for paid work, if they are available.

@sepek
Copy link
Author

sepek commented Oct 12, 2022

So to give you a proper number: about 80.000€. That should suffice for paying a developer half a year.
Anyways, thanks for all your efforts. I really appreciate it. Maybe take the images offline as long as you can't provide new ones. It's fine to cut down features. And as long as this repository still exists. People can take care of it themselves.

@mwild1
Copy link
Member

mwild1 commented Dec 13, 2022

Hi folks,

I've been working on (re-)adding Docker outputs to our CI system. I have an image ready for testing 🎉

The image prosodyim/prosody:0.12 is multi-arch and based on debian:bullseye-slim with the prosody-0.12 package installed (this is the latest nightly build from our stable branch).

At this point I'm basically looking for a couple of people to give it a quick spin, and see if there are any obvious issues. If not, I'll add automated builds for 0.11 (since that's technically still a supported branch) and the latest stable release. The final images will be pushed to prosody/prosody. In the future we may also add additional image flavours, such as a tiny version based on alpine, for example.

The new images also support more environment variables for basic configuration than the old images did. I don't have time to document them right now, but I'll aim to do that this week. You can inspect the prosody.cfg.lua in the repo and container to get an idea of what's possible in the meantime.

Let me know how it goes!

@mwild1 mwild1 changed the title Docker image for 0.11.10 not available Restore automated Docker image publishing Dec 13, 2022
@mwild1 mwild1 pinned this issue Dec 14, 2022
@mwild1
Copy link
Member

mwild1 commented Dec 14, 2022

I just added some new test images, so now we have:

  • prosodyim/prosody:0.12
  • prosodyim/prosody:0.11
  • prosodyim/prosody:trunk

These are only temporary, for testing, and will eventually migrate to the existing prosody/prosody.

I also added documentation of the environment variables: https://prosody.im/doc/docker#environment-variables

@Pinkbyte
Copy link

I confirm successful migration from prosody/prosody:0.11 to prosodyim/prosody:0.11 and later - to prosodyim/prosody:0.12 image. Plugins installation(new feature in 0.12 releases) are broken in 0.12 image, so keep that in mind. I failed to migrate to it from manually synced prosody-modules community repo. Some kind of problem with LuaRocks when trying to install plugin, i did not save logs, sorry.

Anyway, just my 2 cents that if something works for you in old 0.11 images it should work with new images too.

@mwild1
Copy link
Member

mwild1 commented Jan 13, 2023

Thanks for the feedback! (I haven't had any other so far).

I probably won't be able to look at this now until after FOSDEM in a few weeks, but I think at this point it will be a simple switch to push the new images live in place of the old ones.

@Zash
Copy link
Member

Zash commented Jan 18, 2023

~$ podman exec prosody prosodyctl install --server=https://modules.prosody.im/rocks/ mod_unified_push
Installing mod_unified_push in /var/lib/prosody/custom_plugins

Error: Failed finding Lua header files. You may need to install them or configure LUA_INCDIR.
Installing https://modules.prosody.im/rocks/mod_unified_push-13-1.src.rock

Looks like luarocks/luarocks#1275

@poVoq
Copy link

poVoq commented Feb 23, 2023

When trying to run the :0.12 image with Podman (in rootful mode) I get the following error:

usermod: UID '0' already exists

And it fails to start.

@Zash
Copy link
Member

Zash commented Mar 11, 2023

@poVoq that looks like you are using the old images, not the new ones.

@poVoq
Copy link

poVoq commented Mar 11, 2023

no I was using prosodyim/prosody:0.12

Anyways, I switched to a dockerless system for Prosody now.

@Zash
Copy link
Member

Zash commented Mar 11, 2023

Huh, I thought the new images did not have this stuff

if [[ "$(id -u prosody)" != "$data_dir_owner" ]]; then
usermod -u "$data_dir_owner" prosody
fi

but apparently

if [[ "$(id -u prosody)" != "$data_dir_owner" ]]; then
usermod -u "$data_dir_owner" prosody
fi

@merwan
Copy link

merwan commented Mar 11, 2023

@mwild1 I migrated successfully from prosody/prosody:0.11.5 image to prosodyim/prosody:0.11 without doing any configuration change apart from changing the docker image tag.
Running the about command gives me this result:

Prosody 0.11 nightly build 143 (2022-01-24, 458c5f8d5d3e)

Which looks to be the version 0.11.13 of prosody.

I won't upgrade to v0.12 for the time being, but I will let you know when I do.
Thanks for providing this new image with the security fix for v0.11

@SkyBird233
Copy link

I have successfully migrated from a custom Docker image of Prosody (utilizing the official Prosody 0.12.0 DEB file) to a locally built version using files directly from the 'ng' folder of this repository. The Prosody version is 0.12 nightly build 209 (2023-08-30, a2ba3f06dcf4), and everything is working properly without any configuration changes.

I'm looking forward to the official image becoming available soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants