Docker Template XML Schema


Squid

Recommended Posts

On 7/16/2021 at 3:30 PM, Squid said:

If your application requires something specific on the user's system (eg: IPMI compatible motherboard, ElasticSearch, mySQL, etc) then you can specify this within the template (for either a docker container or a plugin) by adding in

<Requires>ElasticSearch</Requires>

[...]

 

What happens when we add the 'Requires' tag to our templates when there is already an entry in your Moderation.json?  Will the entry in the Moderation.json take precedence? Can we ping you to remove the the Requires tag once we updated the template? The question arised, because for paperless-ng the entry in Moderation.json looks fine, but I plan to add it to the template.

Link to comment
  • 2 weeks later...
6 hours ago, knex666 said:

Hey,

 

is there any kind of real XML Schema to test against. I have at least 2 xml files that will be blacklisted. since I dont know why it would be very nice to have a XML Schema to test against bevor uploading it to github.

 

https://github.com/maschhoff/docker/blob/master/unraid xml/my-prpdf.xml

https://github.com/maschhoff/docker/blob/master/unraid xml/my-librespeed.xml

Personally, I consider the schema to be an internal data structure as filling out the template will always create a proper xml file.  But, I do keep this thread up to date with changes etc.

 

Reasons for fatal errors are either invalid syntax, or something that CA enforces.  In your case,  (from Template Errors in CA's statistics section)

knex666's Repository
    atlassian/confluence-server:
        No category entry present
        No Support Link Present
    knex666/mopidy:3-experimental:
        No Support Link Present
    nextcloud:latest:
        No Registry entry set.  Created from Repository setting
    knex666/prpdf:
        No Registry entry set.  Created from Repository setting
        Fatal: Incorrect characters in name
        No Support Link Present
    knex666/rssnotipy:
        No category entry present
        No container port set.  Set to 3247 (Container Port: 3247)
    alqutami/rtmp-hls:
        No Support Link Present
    knex666/shortipy:
        No Support Link Present
    kevineye/snapcast:
        No category entry present
        No Support Link Present
    doudou34/tor-server:
        No Registry entry set.  Created from Repository setting
        No container port set.  Set to 9030 (Container Port: )
        No container port set.  Set to 9001 (Container Port: )
        No Support Link Present

prpdf has invalid characters within the <Name> entry.  Since this is passed directly through to the docker command, CA enforces that the default name will work so as to lessen the support requests because the template as is requires the user to rename the app for it to even install

 

For speedtest, the template duplicated another existing app from the identical docker repository so I flip a coin as to which to remove since there is zero need to have exact duplicated apps present

 

image.png.482703ec6094c327595e514dbd2c8a9e.png

  • Like 1
Link to comment
  • 1 month later...

Going forward, CA supports an entry in the templates for ReadMe files

<ReadMe>some URL here</ReadMe>

image.png.61fa4e5c12ce5bb852f51ec866b20366.png

 

If this entry actually gets used by some maintainers, then I'll also have the dashboard / docker pages support it on their context menus

Link to comment
On 10/3/2021 at 1:02 PM, Squid said:

If this entry actually gets used by some maintainers, then I'll also have the dashboard / docker pages support it on their context menus

Will this potential feature support branch-specific values? as in a readme for main, develop etc when using the Branches tag

Link to comment

For CA, it only looks at the "lead" template, so any readme is the one there.  Once a user installs it (and CA asks for what branch to use), then the <ReadMe> which is enclosed within the <Branch> would get used within dashboard / docker tabs (once I see someone utilize it then I'll put the coding in for the OS itself)

Link to comment

Yeah, via Branches you can change everything within the lead template.  But most commonly only the repository gets changed (and <Config> entries have to be duplicated in their entirety if one of the configs change in the branch)

Link to comment

Just to re-iterate, when creating your templates, please do not artificially add end of lines etc to the descriptions.  End of lines should only be added at the end of a paragraph.  What looks correct on your screen may not look correct (or just plain stupid) on every one else's (or within CA for that matter).  When you're creating a word document, do you hit "Enter" at the end of every line?  You only hit enter at the end of every paragraph, and leave it up to Word to format it correctly accordingly.

 

If you want formatting within the text, then use standard markdown formatting.

Link to comment

Icons

 

While I will never bug anyone about their choice of icons for the apps, there are a couple of preferences (or pet peeves)

  1. If possible, use a transparent png
  2. If possible, find an icon that looks good on all themes for the OS (in particular both White and Black)
  3. Use a high resolution icon if at all possible.
  4. Animated icons on applications are not allowed
  5. Animated icons on repositories (ca_profile) is highly discouraged, but not banned
Link to comment
  • 3 weeks later...

Links within Overviews

 

As previously noted, 6.10 explicitly disallows all HTML tags within the Overviews.  However if you do want to include a link within the Overview, simply do this:

Converted By Community Applications Always verify this template (and values) against the support page for the container

https://hub.docker.com/r/dyonr/sabnzbdvpn/

This will pass through without being changed and the markdown processor will recognize it create a link out of it.  Note that doing something akin to [linkText](linkURL) does not parse.

Link to comment
On 10/3/2021 at 7:02 AM, Squid said:

Going forward, CA supports an entry in the templates for ReadMe files

 
<ReadMe>some link here</ReadMe>

 

Starting next release of the OS (6.10.0-rc3?), both the docker and dashboard tabs will support a ReadMe within the context menu's on the docker applications.  (CA supports it since 2021.10.17)

 

Use it for a link to (obviously) a ReadMe file / Page, or to a FAQ or similar ( @binhex ) Hopefully will lessen support requests on the forums

  • Thanks 1
Link to comment

Screenshots

 

Next release of CA will be supporting screenshots for the applications (and ca_profiles)

 

To take advantage of this add into the XML's

 

<Screenshot>some URL here</Screenshot>

If there are multiple screen shots, just add multiple lines

<Screenshot>some URL here</Screenshot>
<Screenshot>another URL here</Screenshot>
<Screenshot>a third URL here</Screenshot>

 

Similarly, you can add videos, etc

<Video>some URL here</Video>
<Video>another URL here</Video>

 

For ca_profile.xml, the applicable tag is <Photo> (<Video> can also be utilized)

<Photo>some URL here</Photo>

(once again you can add in multiple lines)

 

image.thumb.png.31a74262dabd5c975623763b497b21b1.png

 

 

image.png.0a2f26634b6915c07bb843af1baa61f0.png

 

image.thumb.png.6a949e72a47b4e895bc0e2f83bce7479.png

Link to comment
  • Squid pinned this topic
  • 2 weeks later...

Sorry if this is the wrong place, but I'm trying to figure out why my templates are throwing "No container port set. Set to 25565 (Port for the server)"  They do contain both HostPort and ContainerPort, all be it the same value.

 

I'm guessing it's possibly an error further up the XML that I'm overlooking?

 

I'm sure as with most code issues a second pair of eyes will reveal the obvious error on my part. https://github.com/Goobaroo/unraid-templates

 

Thanks

Link to comment
 <Config Name="Port" Target="" Default="25565" Mode="tcp" Description="Port for the server" Type="Port" Display="always" Required="false" Mask="false">25565</Config>

There's no Target (which should be 25565)  CA has been adjusting the templates to specify the target

Link to comment

Going forward, individual templates will support dedicated URLs for Facebook, Reddit, and Discord to allow further avenues for support

<Discord>someURL</Discord>
<Reddit>someURL</Reddit>
<Facebook>someURL</Facebook>

 

These entries will override the entries within ca_profile.xml

Link to comment
10 minutes ago, SmartPhoneLover said:

How does the 'OFFICIAL' label appear in docker templates? The user (creator/maintainer) can add it manually, or is it added automatically by unRAID CA plugin?

  • If it's listed as being official within dockerHub (eg: MySql or library/mysql)
  • If the author of the container is equivalent to the repository of the container (eg: shaarli/shaarli:master)

This is all because of how dockerHub searches work, where there is an outright "official" flag for the first item.

 

I'm seeing how this works with regards to the 2nd item.  If people complain about labelling one as "official" vs others (when the other may be the "recommended" container to install, then this feature will get removed as it's way way too much work on my part)

 

Note that "official" does not mean "its the best" etc.  It's simply a recognition that this is the container that the author of the app themselves created.

  • Like 1
Link to comment
On 11/30/2021 at 5:48 PM, Squid said:
  • If it's listed as being official within dockerHub (eg: MySql or library/mysql)
  • If the author of the container is equivalent to the repository of the container (eg: shaarli/shaarli:master)

This is all because of how dockerHub searches work, where there is an outright "official" flag for the first item.

 

I'm seeing how this works with regards to the 2nd item.  If people complain about labelling one as "official" vs others (when the other may be the "recommended" container to install, then this feature will get removed as it's way way too much work on my part)

 

Note that "official" does not mean "its the best" etc.  It's simply a recognition that this is the container that the author of the app themselves created.

 

This explanation should be incorporated into a news article or the documentation (or the CA store itself) as it was very difficult to find the answer what qualifies an app as "official".

 

That said, thank you very much for the explanation!!

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.