Kategorien
Docker

Docker Windows Port freigeben

Wenn man in Docker unter Windows die Fehlermldung bekommt:

Error response from daemon: Ports are not available: listen tcp 0.0.0.0:12345: bind: An attempt was made to access a socket in a way forbidden by its access permissions.

Dann muss der Port 12345 freigeben werden:

Dazu muss man auf der Powsershell Kosnole mit Admin Rechten erstmal checken, welche Ports schon freiegeben wurden:

netsh interface ipv4 show excludedportrange protocol=tcp

Wenn der Port in den Port Ranges nicht vorhanden ist, kann er folgender Maßen hinzugefügt werden:
  1. Hyper-V ausschalten (und PC neustarten danach)

dism.exe /Online /Disable-Feature:Microsoft-Hyper-V /All

2.Port hinzufügen:

netsh int ipv4 add excludedportrange protocol=tcp startport=12345 numberofports=1

3. Hyper-V wieder aktivieren (und PC neustarten danach)

dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All

Kategorien
Amazon AWS

FFmpeg installieren auf Amazon Linux 2

Mit folgenden Befehlen kann man ffmpeg unter Amazon Linux 2 installieren:

sudo su
curl -o /tmp/ffmpeg.tar.xz https://www.johnvansickle.com/ffmpeg/old-releases/ffmpeg-4.2.2-amd64-static.tar.xz
tar -xvf /tmp/ffmpeg.tar.xz -C /usr/local/bin
ln -s /usr/local/bin/ffmpeg-4.2.2-amd64-static/ffmpeg /usr/bin/ffmpeg
ln -s /usr/local/bin/ffmpeg-4.2.2-amd64-static/ffprobe /usr/bin/ffprobe
Kategorien
Amazon AWS WordPress

WordPress Bitnami Banner entfernen auf AWS AMI

Um den Bitnami Banner entfernen zu können, soll man per SSH einen Konsolenbefehl ausführen:

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1

dies führte bei mir zu einer Fehlermeldung, dass die Datei bnconfig nicht vorhanden ist:

sudo: /opt/bitnami/apps/wordpress/bnconfig: command not found

Die Ursache ist, dass die Datei standradmäßig erst deaktiviert ist, es gibt eine /opt/bitnami/apps/wordpress/bnconfig.disabled

Diese muss aktiviert werden, indem sie umbenannt wird nach bnconfig:

sudo mv /opt/bitnami/apps/wordpress/bnconfig.disabled /opt/bitnami/apps/wordpress/bnconfig

Danach kann der Banner erfolgreich entfernt werden:

sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
Kategorien
Jenkins

Jenkins mit selbst signiertem SSL Zertifikat absichern

Damit Jenkins unter Linux nur noch über HTTPS erreichbar ist, muss man sich zuerst ein SSL Zertifikat erzeugen am besten im Ordner:

mkdir /var/lib/jenkins/ssl_cert/
cd /var/lib/jenkins/ssl_cert/

openssl req -newkey rsa:2048 -x509 -keyout cakey.pem -out cacert.pem -days 3650

Dann kann man dieses Zertifikat umwandeln für den Java Key Store:

openssl pkcs12 -export -in cacert.pem -inkey cakey.pem -out identity.p12 -name jenkins
keytool -importkeystore -destkeystore identity.jks  -srckeystore identity.p12 -srcstoretype PKCS12

und in den Java Key Store importieren:

keytool -import -file cacert.pem -keystore trust.jks

Am Ende muss nur noch die Config angepasst werden:

sudo vi /etc/sysconfig/jenkins

mit den Werten:

JENKINS_PORT="-1"

JENKINS_HTTPS_PORT="8443"

JENKINS_HTTPS_KEYSTORE="/var/lib/jenkins/ssl_cert/identity.jks"

JENKINS_HTTPS_KEYSTORE_PASSWORD="YOUR_PASSWORD_HERE"

JENKINS_HTTPS_LISTEN_ADDRESS="0.0.0.0"

Und der Service neu gestartet werden:

chown -R jenkins: /var/lib/jenkins/ssl_cert/*
chmod 600 /var/lib/jenkins/ssl_cert/*

sudo systemctl restart jenkins
Kategorien
Jenkins

Jenkins Ant build failed: exec returned 255

Wenn der Ant Build im Jenkins Server mit der sehr nichts sagenden Fehlermeldung fehlschlägt:

build.xml:103: exec returned: 255

dann kann dies daran liegen, dass nicht genug RAM zur Verfügung steht.

 

Kategorien
Amazon AWS PHP

PHP eigene Metriken in AWS Cloudwatch erstellen

Um in CloudWatch eigene Metriken anzulegen, um z.B. Alarm auszulösen und Monitoring zu betreiben mit den Daten der Applikation, kann man mit dem aws-php-sdk den folgenden Code verwenden:

 $client = new CloudWatchClient([
        'region' => 'eu-central-1',
        'version' => '2010-08-01',
        'credentials' => [
            'key'    => 'xxx',
            'secret' => 'xxx
        ],
    ]);
}
$result = $this->client->putMetricData(array(

    'Namespace' => 'MyProject',
    'MetricData' => array(
        array(
            'MetricName' => 'MyMetric,
            'Timestamp' => time(),
            'Value' => 1,
            'Unit' => 'Count',
            'Dimensions' => array(
                array(
                    'Name' => 'Environment',
                    'Value' => 'test',
                ),
            ),
        )
    )
));
Kategorien
Docker

Docker Image build auf einmal keine Internetverbindung mehr

Wenn man keine Packete installieren kann bei einem Build, kann man versuchen, die docker-machine neuzustarten:

docker-machine restart
Kategorien
Docker

Docker Shell Alias verwenden unter Linux

Um auf der Linux Shell die gewohnten Aliase wie ll für ls -lh zu verwenden, muss man folgenden Trick verwenden:

Da das Login über sh keine Linux Login Shell ist, werden die Alias Definitionen in /etc/profile.d nicht geladen beim Login.

Lösung:

Es reicht, sich mit sh –login im Container anzumleden, dann stehen die Alias Definitionen zur Verfügung.

Kategorien
Amazon AWS Docker PHP 7

DockerFile PHP mit XDebug und Amazon Linux 2

Ein DockerFile für eine PHP 7.2. Umgebung mit XDebug für eine Symfony 4 Umgebung unter Amazon Linux 2:

FROM amazonlinux:2.0.20190823.1

RUN yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# install php
RUN amazon-linux-extras install -y php7.2
RUN yum install -y php-devel.x86_64 php-xml.x86_64 php-pecl-zip.x86_64  php-intl.x86_64

#install xdebug
RUN yum install -y gcc make
RUN yum install -y php-pear.noarch
RUN pecl install xdebug
RUN echo 'zend_extension=/usr/lib64/php/modules/xdebug.so' >> /etc/php.ini
Kategorien
Docker

Docker Xdebug remote_host setzen in Toolbox für PHPStorm

Um mit Xdebug und PHPStorm im Docker Container debuggen zu können, aber die Fehlermeldung bekommt:

Connection was not established. Probably 'xdebug.remote_host=docker.for.win.localhost' is incorrect

liegt das daran, dass Docker in der Toolbox Variante für Windows den Platzhalter docker.for.win.localhost nicht befüllt. Es muss also die IP des PHPStorm Rechners manuell gesetzt werden.

Dazu setzt man manuell den Wert von xdebug.remote_host auf 192.168.99.1 (die IP Docker für den Host setzt, kann varieren) bei den CLI Interpreter Optionen: