Are you really saying that the “# Local options” comment is a necessary part of the configuration file? Really? Because I don’t think a comment should ever a required part of any syntax…
If the configuration file needs have labeled components use YAML or XML or something. Cheers, e. -- Eliot Kimber http://contrext.com On 4/2/17, 2:25 PM, "Christian Grün" <christian.gr...@gmail.com> wrote: Hi Eliot, If you start with a new version of BaseX, in which the .basex configuration file is still empty or non-existent, there may be no "Local Options" comment. I hope the revised Wiki makes this more obvious [1]. Best, Christian [1] http://docs.basex.org/wiki/Options On Sun, Apr 2, 2017 at 12:45 PM, Eliot Kimber <ekim...@contrext.com> wrote: > Yes, the options were at the end. But looking at the code I don’t see how > that could have mattered. Perhaps I missed a detail? > > > > Cheers, > > > > E. > > > > -- > > Eliot Kimber > > http://contrext.com > > > > > > > > From: Christian Grün <christian.gr...@gmail.com> > Date: Sunday, April 2, 2017 at 11:38 AM > To: Eliot Kimber <ekim...@contrext.com> > Cc: "basex-talk@mailman.uni-konstanz.de" > <basex-talk@mailman.uni-konstanz.de> > Subject: Re: [basex-talk] Basex Docker Container: How to Control Options > > > > Hi Eliot, > > > > Did you try to specify the option in the local section of the .basex file > (at the bottom, after all other options)? > > > > Best, > > Christian > > > > > > > > > > > > Am 02.04.2017 10:52 schrieb "Eliot Kimber" <ekim...@contrext.com>: > > I’ve worked around the configuration file problem by setting the options on > the Java command line by setting BASEX_JVM in my Dockerfile: > > ENV BASEX_JVM="-Dorg.basex.CHOP=false > -Dorg.basex.CATFILE=/opt/dita-ot/DITA-OT/catalog-dita.xml > -Dorg.basex.DTD=true -Dorg.basex.SKIPCORRUPT=true" > > That seems to work. I guess I could also set this environment variable in my > docker-compose.yml file, although except for CATFILE, these are invariant > for this application. > > > Cheers, > > E. > > -- > Eliot Kimber > http://contrext.com > > > On 4/1/17, 10:44 PM, "Eliot Kimber" > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of > ekim...@contrext.com> wrote: > > Perhaps a more useful question is: is there a workaround for this? > > That is, I need to have the DTD, CATFILE, CHOP, and SKIPCORRUPT options > set when I load files into a database, which I’m doing through the remote > API. Is there either a separate options file that I should be using or a way > to specify these options at document load time? > > Cheers, > > E. > > -- > Eliot Kimber > http://contrext.com > > > > On 4/1/17, 10:23 PM, "Eliot Kimber" > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of > ekim...@contrext.com> wrote: > > I dug into the code and I think this is a code bug but I don’t > understand the overall flow well enough to know where the bug is, but I > suspect it’s a simple change. > > If I debug the BasexGUI class and have a ~/.basex file that includes > CATFILE=foo it will fail with an unknown option error because the option > class being used is StaticOptions and StaticOptions does not define CATFILE > as an option. > > The CATFILE option, along with a few others, is defined on > MainOptions: > > private static final Option<?>[] INHERIT = { CHOP, INTPARSE, > STRIPNS, DTD, XINCLUDE, CATFILE }; > > Looking at BaseXHTTP it uses HTTPContext which only uses > StaticOptions, not MainOptions, which means it can never allow the INHERIT > options. > > So something must have changed from 8.1 ish to now to change how > options are handled since these options worked before I moved to the latest > BaseX container and versions. > > But there definitely seems to be an oversight in the initial > handling of the options file in the BaseXHTTP server (and in the BaseXGUI as > well since I get the same behavior there as well). > > I would make a pull request but I don’t presume to know what > policies or general practices underlie the current options mechanism deisgn. > > Cheers, > > Eliot > -- > Eliot Kimber > http://contrext.com > > > > On 3/26/17, 10:20 PM, "Eliot Kimber" > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of > ekim...@contrext.com> wrote: > > I found my original mail thread from January 2016: > > > https://mailman.uni-konstanz.de/pipermail/basex-talk/2016-January/010171.html > > Basically I had to append my options to the existing .basex file > rather than simply provide a file. > > However, that isn’t an option here because there is no existing > /srv/.basex file (the place where the file needs to be). > > As an experiment I tried doing this: > > RUN touch /srv/.basex && \ > echo "DTD=true" >> .basex && \ > echo "CATFILE=/opt/dita-ot/DITA-OT/catalog-dita.xml" >> > .basex && \ > echo "SKIPCORRUPT=true" >> .basex && \ > echo "CHOP=false" >> .basex && \ > echo "DBPATH=/srv/BaseXData" >> .basex && \ > echo "REPOPATH=/srv/BaseXRepo" >> .basex && \ > echo "WEBPATH=/srv/BaseXWeb" >> .basex && \ > chown basex /srv/.basex > RUN echo "/srv/.basex:\n===========" && cat /srv/.basex && echo > "=======" > > And I get this from the build command: > > /srv/.basex: > =========== > DTD=true > CATFILE=/opt/dita-ot/DITA-OT/catalog-dita.xml > SKIPCORRUPT=true > CHOP=false > DBPATH=/srv/BaseXData > REPOPATH=/srv/BaseXRepo > WEBPATH=/srv/BaseXWeb > ======= > > When I start up this container I get this: > > /srv/.basex: Unknown option 'DTD'. > /srv/.basex: Unknown option 'CATFILE'. > /srv/.basex: Unknown option 'SKIPCORRUPT'. > /srv/.basex: Unknown option 'CHOP'. > /srv/.basex: writing new configuration file. > > Note that it’s only complaining about DTD, CATFILE, SKIPCORRUPT, > and CHOP, but not DBPATH, REPOPATH, and WEBPATH. I tried reordering things, > no difference in result (but the messages reflect the order change). > > So it must be something about how these particular options are > processed rather than an issue with the .basex file, at least as far as I > can see. > > Cheers, > > Eliot > > -- > Eliot Kimber > http://contrext.com > > > > On 3/26/17, 3:29 PM, "Eliot Kimber" > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of > ekim...@contrext.com> wrote: > > Discovered that if I use USER root in the Dockerfile I have > to then do USER basex before the end so that the container will be running > as basex, otherwise it does not start up correctly. I also have to chown the > /srv/.basex file to basex otherwise it can’t overwrite it on startup. > > Made some progress but something is still not working. > > I now have a Dockerfile based on basex/dba that results in a > running system with the both the dba and my custom app runnable. > > However, if I then add this: > > COPY basex/dot_basex /srv/.basex > > As before, on startup I get this: > > docker run --name linkmgr-test -p 8984:8984 > link-manager-test > /srv/.basex: Unknown option 'CATFILE'. > /srv/.basex: Unknown option 'DTD'. > /srv/.basex: Unknown option 'SKIPCORRUPT'. > /srv/.basex: Unknown option 'CHOP'. > /srv/.basex: writing new configuration file. > Creating /srv/BaseXWeb/WEB-INF/web.xml > Creating /srv/BaseXWeb/WEB-INF/jetty.xml > > > I think this Unknown option this is actually an issue with > the file itself but I don’t recall what the exact cause and/or solution was. > > Cheers, > > E. > > -- > Eliot Kimber > http://contrext.com > > > > On 3/26/17, 1:40 PM, "Eliot Kimber" > <basex-talk-boun...@mailman.uni-konstanz.de on behalf of > ekim...@contrext.com> wrote: > > I’m trying to set up a Docker container with my own Web > app using the latest official containers as a base and following the > instructions in the latest BaseX docs. > > As part of this setup I need to add several additional > options. > > I also want to include the dba app. > > Following the instructions in the docs I’m putting my > additional options in /srv/.basex and these take effect. However, if I use > the basex/dba image as a base, the other options, such as the custom > REPOPATH and WEBPATH settings do not get used. > > It’s not clear to me from looking at the various > Dockerfiles how the dba container sets the options and how I can then add to > them without overwriting them. > > Of course I can duplicate the options in my Dockerfile > but it seems like I should be able to add my options additively but I’m not > seeing how to do it, so I feel I’m missing something. > > In my Dockerfile I have: > > COPY basex/dot_basex /srv/.basex > > If I don’t include this line then the container > otherwise works in that my Web app is there but it requires these additional > options in order to function properly. If I include it then the effective > options reflect only my changes and not those required for the custom Web > apps to work. > > Thanks, > > Eliot > > -- > Eliot Kimber > http://contrext.com > > > > > > > > > > > > > > > > > > > > > > > >