The pain is that you can't run a Windows docker image on Linux. And Microsoft images with the .net libraries are all Windows.
Like this one https://hub.docker.com/r/compulim/msbuild/
BUT you can build a ubuntu-based docker builder image:
https://medium.com/@hudsonmendes/build-net-4-5-on-linux-in-5-minutes-and-see-what-it-is-like-848ea45fc667
it's available on docker hub as vernetto/ubuntudotnet:1.0
Ref: how to push to docker hub https://ropenscilabs.github.io/r-docker-tutorial/04-Dockerhub.html
how to submit a container to an image and save it as tar https://docs.docker.com/engine/reference/commandline/save/#description
Friday, August 31, 2018
Monday, August 27, 2018
docker latest update fails miserably
sudo journalctl -xe
mkdir /run/containerd/io.containerd.runtime.v2.task/docker/dockerd: file exists: unknown
it seems a bug of the latest (nightly) release.... which was installed automatically by the Centos updates process.
I uninstall everything:
sudo yum remove docker docker-common docker-selinux docker-engine
Then I install
https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository
sudo yum-config-manager --disable docker-ce-edge
sudo yum install docker-ce
sudo systemctl enable docker
systemctl start docker
systemctl status docker.service
Error starting daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: devicemapper, overlay2; Please cleanup or explicit
sudo vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -s=devicemapper -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
sudo systemctl daemon-reload
sudo systemctl start docker
mkdir /run/containerd/io.containerd.runtime.v2.task/docker/dockerd: file exists: unknown
it seems a bug of the latest (nightly) release.... which was installed automatically by the Centos updates process.
I uninstall everything:
sudo yum remove docker docker-common docker-selinux docker-engine
Then I install
https://docs.docker.com/install/linux/docker-ce/centos/#set-up-the-repository
sudo yum-config-manager --disable docker-ce-edge
sudo yum install docker-ce
sudo systemctl enable docker
systemctl start docker
systemctl status docker.service
Error starting daemon: error initializing graphdriver: /var/lib/docker contains several valid graphdrivers: devicemapper, overlay2; Please cleanup or explicit
sudo vi /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -s=devicemapper -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
sudo systemctl daemon-reload
sudo systemctl start docker
Labels:
docker
Friday, August 24, 2018
Nexus 3.10 as Python pypi proxy
sudo yum -y update
sudo yum -y install python-pip
pip --help
pip -V
mkdir ~/.pip
cd .pip/
vi pip.conf
enter this:
Create a nexus Pypi proxy repo "pypi" pointing to https://pypi.org/ . Leave all the defaults as they are.
pip install lino-amici
this should populate your nexus:
No worries about the message about the python version.... I have 2.7.... not willing to upgrade for now...
sudo yum -y install python-pip
pip --help
pip -V
mkdir ~/.pip
cd .pip/
vi pip.conf
enter this:
[global] index = http://localhost:8181/repository/pypi/ index-url = http://localhost:8181/repository/pypi/simple
Create a nexus Pypi proxy repo "pypi" pointing to https://pypi.org/ . Leave all the defaults as they are.
pip install lino-amici
this should populate your nexus:
Looking in indexes: http://localhost:8181/repository/pypi/simple Collecting lino-amici Downloading http://localhost:8181/repository/pypi/packages/eb/c3/7bdd189fd446effe7ea61d2136dfaec478ec7c5b84f694c6b6e43656f319/lino-amici-18.8.0.tar.gz Collecting lino-xl (from lino-amici) Downloading http://localhost:8181/repository/pypi/packages/02/34/6ab429aac3f80aa64fd00c8f3dd76a9ca9ecf25d7e03f1e48981c7031542/lino-xl-18.4.0.tar.gz (2.3MB) 100% |████████████████████████████████| 2.3MB 92.2MB/s Collecting vobject (from lino-amici) Downloading http://localhost:8181/repository/pypi/packages/da/ce/27c48c0e39cc69ffe7f6e3751734f6073539bf18a0cfe564e973a3709a52/vobject-0.9.6.1.tar.gz (58kB) 100% |████████████████████████████████| 61kB 19.8MB/s Collecting lino (from lino-xl->lino-amici) Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPConnectionPool(host='localhost', port=8181): Read timed out. (read timeout=15)",)': /repository/pypi/packages/68/9e/39e5e96b9b8273f0f29943cddd51873ec670657ccf9918727d97ca6628e2/lino-18.8.0.tar.gz Downloading http://localhost:8181/repository/pypi/packages/68/9e/39e5e96b9b8273f0f29943cddd51873ec670657ccf9918727d97ca6628e2/lino-18.8.0.tar.gz (10.6MB) 100% |████████████████████████████████| 10.6MB 89.8MB/s Collecting odfpy (from lino-xl->lino-amici) Downloading http://localhost:8181/repository/pypi/packages/01/0f/c9971c99d0d06024a1652f467427ff3f1a1136237e5740da715c5b208a48/odfpy-1.3.6.tar.gz (691kB) 100% |████████████████████████████████| 696kB 42.6MB/s Collecting bleach (from lino-xl->lino-amici) Downloading http://localhost:8181/repository/pypi/packages/94/aa/0f7ce53f8688bb9f80c0cffacc3964ddfe08321c509c0bfe5062848951f9/bleach-2.1.4-py2.py3-none-any.whl Collecting weasyprint (from lino-xl->lino-amici) Downloading http://localhost:8181/repository/pypi/packages/7e/4c/cf2ec7abf7f84a2d1325d01dcac1d4bcb77f41117101fe564eb76952c65f/WeasyPrint-0.42.3.tar.gz (399kB) 100% |████████████████████████████████| 409kB 37.7MB/s Complete output from command python setup.py egg_info: error in WeasyPrint setup command: Invalid environment marker: python_version < "3.0" ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-sPdLGr/weasyprint/
No worries about the message about the python version.... I have 2.7.... not willing to upgrade for now...
Wednesday, August 22, 2018
shell input validation
shell scripting STINKS, and to make it better we should at least make it more robust.
For instance by validating input parameters
Arrays are a great and simple way to achieve this.
For instance by validating input parameters
Arrays are a great and simple way to achieve this.
array=(pippo pluto topolino) printf '%s ' "${array[@]}" printf '\n' value=puppo if [[ ! " ${array[@]} " =~ " ${value} " ]]; then echo "array doesnt contain value $value" fi
Labels:
shell
Tuesday, August 14, 2018
Oracle DB Invalid Objects
Some usefuls commands to troubleshoot:
select count(*) from USER_OBJECTS where OBJECT_TYPE = 'TABLE';
select count(*) from user_objects where object_type='TYPE';
select count(*) from user_tables;
select * from USER_OBJECTS where STATUS = 'INVALID';
exec dbms_utility.compile_schema( 'MYUSER' );
alter package MYPACKAGE COMPILE;
alter package MYPACKAGE COMPILE BODY;
show errors;
select * from user_errors ;
References:
https://oracle-base.com/articles/misc/recompiling-invalid-schema-objects
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:637156098168
select count(*) from USER_OBJECTS where OBJECT_TYPE = 'TABLE';
select count(*) from user_objects where object_type='TYPE';
select count(*) from user_tables;
select * from USER_OBJECTS where STATUS = 'INVALID';
exec dbms_utility.compile_schema( 'MYUSER' );
alter package MYPACKAGE COMPILE;
alter package MYPACKAGE COMPILE BODY;
show errors;
select * from user_errors ;
References:
https://oracle-base.com/articles/misc/recompiling-invalid-schema-objects
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:637156098168
Labels:
oracledb
Thursday, August 2, 2018
CDI and WELD suck
A @Stateless bean could not be injected because not found by WELD
https://docs.jboss.org/author/display/WFLY10/CDI+Reference
Even if the bean is a session bean, the archive (.jar) is not an “explicit bean archives (basically any archive containing the beans.xml file)“ because it doesn’t contain a beans.xml file (only the war file has a beans.xml file).
Since CDI 1.1 an archive can be implicit : “An implicit bean archive is any archive that contains one or more classes annotated with a bean defining annotation (scope annotation) or one or more session beans.”. Implicit archives don’t need a beans.xml.
But by default “implicit” is disabled! To enable it, you can either do the jboss-all.xml trick or do the “subsystem=weld:write-attribute(name=require-bean-descriptor,value=true)” trick. See again https://docs.jboss.org/author/display/WFLY10/CDI+Reference for more details. Or, you can simply add a beans.xml to the JAR.
If all this sounds to you like complete chaos and needless complication, it’s because it is!
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type PersistenceService with qualifiers @Default at injection point [BackedAnnotatedField] @Inject private com.pippo.pluto.paperino.rest.MafaldaController.persistenceService at com.pippo.pluto.paperino.rest.MafaldaController.persistenceService(MafaldaController.java:0) at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:362) at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:284) at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:137) at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:158) at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:501) at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:61) at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:59) at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:62) at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:55) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) at org.jboss.threads.JBossThread.run(JBossThread.java:320)
https://docs.jboss.org/author/display/WFLY10/CDI+Reference
Even if the bean is a session bean, the archive (.jar) is not an “explicit bean archives (basically any archive containing the beans.xml file)“ because it doesn’t contain a beans.xml file (only the war file has a beans.xml file).
Since CDI 1.1 an archive can be implicit : “An implicit bean archive is any archive that contains one or more classes annotated with a bean defining annotation (scope annotation) or one or more session beans.”. Implicit archives don’t need a beans.xml.
But by default “implicit” is disabled! To enable it, you can either do the jboss-all.xml trick or do the “subsystem=weld:write-attribute(name=require-bean-descriptor,value=true)” trick. See again https://docs.jboss.org/author/display/WFLY10/CDI+Reference for more details. Or, you can simply add a beans.xml to the JAR.
If all this sounds to you like complete chaos and needless complication, it’s because it is!
Subscribe to:
Posts (Atom)