Configure Schemacrawler docker via configuration file? - docker

Schemacrawler makes reference to a "configuration file", e.g. in https://www.schemacrawler.com/diagramming.html it says:
Show column ordinals, by setting configuration option schemacrawler.format.show_ordinal_numbers=true in the configuration file.
But I've not found what and where that file is.
I run Schemacrawler from its provided Docker images and struggle to make sense of where to configure e.g. schemacrawler.format.show_ordinal_numbers=true as referenced in the above docs.
Anyone know how this is intended to work?
(BTW I'm asking on SO because their repository suggests to do so)

Seems it makes use of this file: config/schemacrawler.config.properties.
From its Github repo I found these links:
Diagram Readme
Sample config file

Jon,
Please use the latest SchemaCrawler Docker image. When you open a shell in this Docker container, you will have a schemacrawler.config.properties file in the home directory. You can edit this file in vi, and then use it with SchemaCrawler by providing an additional -g ./schemacrawler.config.properties command-line switch. Instructions are provided on the Docker Hub SchemaCrawler page.
Sualeh Fatehi, SchemaCrawler

Related

Docker - how to edit yml file after pull

Docker pull allows to pull directly ie. weblate/weblate
fine, but it is neccessary to create a docker-compose.overwrite.yml file with config to run
so, the question is: where to place that file, how to handle that topic? cannot find the location for that yml file (there should be also a docker-compose.yml file available)
additional information:
if done via cloning the weblate-docker repo, it is possible to add that file, but, is it also possible to do it when "just" pulling?

Why isn't telegraf reading environmental variables?

My goal is to put my telegraf config into source control. To do so, I have a repo in my user's home directory with the appropriate config file which has already been tested and proven working.
I have added the path to the new config file in the "default" environment variables file:
/etc/default/telegraf
like this:
TELEGRAF_CONFIG_PATH="/home/ubuntu/some_repo/telegraf.conf"
... as well as other required variables such as passwords.
However, when I attempt to run
telegraf --test
It says No config file specified, and could not find one in $TELEGRAF_CONFIG_PATH etc.
Further, if I force it by
telegraf --test --config /home/ubuntu/some_repo/telegraf.conf
Then the process fails because it is missing the other required variables.
Questions:
What am I doing wrong?
Is there not also a way of specifying a config directory too (I would like to break my file down into separate input files)?
Perhaps as an alternative to all of this... is there not a way of specifying additional configuration files to be included from within the default /etc/telegraf/telegraf.conf file? (I've been unable to find any mention of this in documentation).
What am I doing wrong?
See what user:group owns /etc/default/telegraf. This file is better used when running telegraf as a service via systemd. Additionally, if you run env do you see the TELEGRAF_CONFIG_PATH variable? What about your other variables? If not, then you probably need to source the file first.
Is there not also a way of specifying a config directory too (I would like to break my file down into separate input files)?
Yes! Take a look at all the options of telegraf with telegraf --help and you will find:
--config-directory <directory> directory containing additional *.conf files
Perhaps as an alternative to all of this... is there not a way of specifying additional configuration files to be included from within the default /etc/telegraf/telegraf.conf file? (I've been unable to find any mention of this in documentation).
That is not the method I would suggest going down. Check out the config directory option above I mentioned.
Ok, after a LOT of trial and error, I figured everything out. For those facing similar issues, here is your shortcut to the answer:
Firstly, remember that when adding variables to the /etc/default/telegraf file, it must effectively be reloaded. So for example using ubuntu systemctl, that requires a restart.
You can verify that the variables have been loaded successfully using this:
$ sudo strings /proc/<pid>/environ
where <pid> is the "Main PID" from the telegraf status output
Secondly, when testing (eg telegraf --test) then (this is the part that is not necessarily intuitive and isn't documented) you will have to ALSO load the same environmental variables into the current user (eg: SET var=value) such that running
$ env
shows the same results as the previous command.
Hint: This is a good method for loading the current env file directly rather than doing it manually.

Cannot find the daemon.json file in windows 10 after docker-desktop installation

I installed the docker-desktop in windows 10 using the installer. Now i want to see the configuration file daemon.json. The official documentation says that
The default location of the configuration file on Windows is %programdata%\docker\config\daemon.json
But i cannot find a folder %programdata%\docker.Instead, the folder C:\ProgramData\DockerDesktop exists. But that doesn't have a daemon.json file in it.
Can someone help me to find why this is so and where can i find daemon.json?
On my system the file is at %userprofile%\.docker\daemon.json.
Right click Docker icon in taskbar > Click Settings > Click Docker Engine
You can update that, and it should work. I'm on Docker Engine v19.03.8.
The path C:\ProgramData\Docker\config\daemon.json, as described in Microsoft documentation, is correct, or also correct.
I think the file is not created until you change it on GUI. Once you change it on GUI,the file will be were is supposed with the exact content you apply.

Installing Hyperledger fabric dependent binaries using Docker for Mac

I downloaded Docker for Mac since it was a prerequisite for Hyperledger Fabric (also listed here).
Now, I downloaded platform specific binaries listed here.
The instructions said:
If you are using Docker for Mac, you will need
to use a location under /Users, /Volumes, /private, or /tmp. To use a
different location, please consult the Docker documentation for file
sharing.
So,I used the following directory: /Users/user_name/Documents/Hyperledger\ Fabric/
I followed the same commands as listed on the site.
However, I was not able to add the line below to the ~/.bash_profile.
export PATH=/Users/user_name/Documents/Hyperledger\ Fabric/bin:$PATH
If I added the above line and ran the bash_profile, it gave an error and after that commands like ls, open were giving error not found.
It seems that there is a problem with the file location since I
installed Docker for Mac instead of Docker toolbox.
The problem is that your directory name contains a space. One way to avoid this problem is to specify a directory name that has no spaces. This would be the ideal approach since once you introduce a space in the PATH variable it would need to be quoted where used subsequently.
Alternately, you could set the path as:
export PATH="/Users/user_name/Documents/Hyperledger Fabric/bin":$PATH
However, as noted this has drawbacks.

ADD command with network path in Windows Containers Dockerfiles

I'm creating some Windows Container images that I need but the source file I want to ADD are in a network share \\myserver\myshare\here.
I've tried in any possible way but I always get the message error The system cannot find the path specified.
Is it because I have not yet found the right way to set it or is it that it is just not possible?
From the Docker site:
Multiple resource may be specified but if they are files or directories then they must be relative to the source directory that is being built (the context of the build).
Is that why I can't accomplish what I need?
Full error message: GetFileAttributesEx \\myserver\myshare\here\: The system cannot find the path specified.
Whatever you ADD or COPY must be in the docker build context.
When you do this:
docker build .
That directory param (the . in the example) is the context that is copied and sent to the Docker daemon. Then the docker daemon use those files to COPY or ADD. It won't use any file that is not in that context.
That is the issue that you are experiencing. I'm not sure how you can solve it anything than copying the files from \\myserver to your build directory.
ADD is capable of download files by providing an URL (should investigate if it supports Windows' shares)

Resources