Schlagwort-Archive: php

GitLab CI Runner im Docker Container [GitLab Runner] [Docker] [PHP] [NodeJS] [LESSCSS]

bitconnect

Ich habe ja bereits berichtet, dass ich meine GitLab-Installation in einen Docker-Container verfrachtet habe. Nun möchte ich passend dazu natürlich auch meine GitLab-Runner in Docker-Containern laufen lassen. Was mir hierbei gut gefällt: Das restliche System ist von den für Build-Prozesse notwendigen Tools nicht zugemüllt.

GitLab Runner im Docker-Container laufen lassen

Wie in der originalen Anleitung zu lesen, ist es gar nicht schwer, einen GitLab-Runner im Docker-Container auszuführen:

Doch ich will natürlich noch einige zusätzliche Tools für PHP-Entwicklung in den Runner einbinden.

Ein PHP-Optimierter GitLab-Runner

Das tolle an Docker: Auf bestehenden Images aufbauen und diese erweitern. Mit einem Dockerfile.

Ich habe also mein eigenes Dockerfile geschrieben:

Kurz erklärt: Was hier passiert ist quasi das originale Docker-Kommando (siehe ganz oben). Es wird also das Docker-Image „gitlab/gitlab-runner:latest“ geladen. Dann werden zusätzliche Kommandos ausgeführt.

  1. Die Liste der verfügbaren Programme aktualisieren
  2. Neue Pakete installieren: php5, php5-pear, zip, curl, php5-mcrypt, NodeJS, npm und ncftp
  3. Das mcrypt-PHP-Modul aktivieren
  4. nochmals vergügbare Programme aktualisieren
  5. Neue Pakete installieren: php5-xsl
  6. NodeJS passend verlinken
  7. Den LessCSS-Precompiler über NodeJS installieren
  8. phpmd installieren
  9. phploc installieren
  10. Composer installieren
  11. phpcpd installieren
  12. phpdox installieren

Mit dieser Palette an Tools kann ich meine Projekte optimal bauen. Jetzt muss ich das Docker-Image nur noch erstellen und ausführen lassen:

Nun läuft mein PHP-Optimierter GitLab-Runner. Jetzt muss er nur noch registriert werden, dazu führt man folgendes Kommando aus und befolgt die Anweisungen:

Meinen Runner nutzen

Wenn Du dich um das Dockerfile nicht kümmern möchtest, aber meine Tool-Palette cool findet, kannst Du genau diesen Runner auf jedem Server installieren, dazu nutzt du statt dem obigen docker-build Kommande folgendes:

Nun zieht dein Docker sich das Dockerfile aus meinem öffentlichen Repository und baut das Docker-Image.

Artikel-Empfehlung KW 6 2011

Genesis Mining

Windows 7 Kontextmenü ausmisten und sinnvoll erweitern

Läuft ein System eine Weile, sammeln sich im Kontextmenü (beim Rechtsklickt auf eine Datei bspw.) viele Einträge, das System an sich bringt auch viele Einträge mit, die nicht jeder benötigt. Dieser Artikel beschreibt, wie das Kontextmenü entspeckt und auch sinnvoll erweitert werden kann.

IT Blögg iPhone/iPod App

Dein Blog soll in eine iPhone/iPad-App umgewandelt werden? Der IT Blögg beschreibt beispielhaft und meiner Meinung nach sehr verständlich, wie zeit- und kostspielig die Umstellung ist und wie es aussehen könnte. Entscheiden kann ja der jeweilige Blogbetreiber selbst.

Icons etc. – jede Menge lizenzfreie Icons

Christian hat sich mal wieder selbst übertroffen. Wo es wieder vernünftige und lizenzfreie Icons gibt, wie das System aufgebaut ist und ein paar Daten hat er uns wieder parat gestellt.

MPDF 5 – PDF-Dateien mit PHP erzeugen

Das PHP5 in der Lage ist PDF-Dateien zu erzeugen war mir bekannt, Christian wies allerdings nochmal auf eine bereits sehr ausgereifte PHP-Klasse hin, die das generieren von PHP-Dateien mittels PHP noch einfacher gestaltet.

Die Anatomie eines WordPress Themes

Wie ist ein WordPress Theme aufgebaut, welche Dateien und wofür? Wer mal Designs für WordPress entwickeln möchte oder wer bereits Themes erstellt, dürfte sich für die Anatomie von WordPress Themes interessieren.

Googles Sorgen mit einem gekränkten Autor

Da Google ein sehr zentraler Bestandteil des heutigen Internet ist, kann der automatisch erzeugte Textauszug zu einem Link auch sehr Image-Schädigend sein. Der lawblog wies auf Bastian Sick, welcher durch den Textauszug in Google Suchergebnissen schlecht dasteht.

Facebook: Lovely Faces-Dating-Experiment verwendet eine Million Facebook-Profile

Schon wieder so eine doofe Dating-Webseite. Nicht wirklich, denn wer Zeit hat darf gerne nach sich suchen. Dieses Dating-Portal beinhaltet quasi jedes sechste Facebook-Mitglied. Denn eine Millionen der aktuell 600 Mio. Nutzer sind dort -ohne ihr Wissen- vertreten.

Original Windows 7 ISOs zum Herunterladen

Ganz nützlich ist, wenn man probieren will, eine kostenlose Testversion eines Produktes. Aber auch nützlich ist eine ISO-Datei, wenn der originale Datenträger verlegt wurde, die Lizenz aber noch zur Hand ist. Windows 7 Images können jetzt auch online heruntergeladen werden, direkt bei Microsoft.

Facebook Mitteilungen auf dem Desktop

Wer dauerhaft von Facebook informiert bleiben will, während er am Computer sitzt, kanns ich Facebook Desktop installieren. Dieses informiert über neue Facebook-Status direkt auf dem Desktop.

Freundefinder – Facebook will mehr

Facebook bietet ja seid geraumer Zeit die Möglichkeit, ICQ oder E-Mail-Zugangsdaten einzugeben und somit über Kontakte von ICQ oder dem E-Mail-Konto informiert zu werden, welche auch bei Facebook sind. Nicht nur ich sehe die Facebook Freundefinder-Funktion mit kritischen Augen.

Zeiterfassung steigert Produktivität (bsp. Kimai)

bitconnect

Wenn ich privat einem Bekannten einen Wunsch erfülle oder ihm irgendwo aushelfe, kann ich später immer nur schätzen, ob es wenige Minuten oder eher viele Stunden gedauert hat.
Besonders bei meinem Hobby, der Programmierung, dauert es viele Stunden, Tage, Wochen und/oder Monate bis ein Projekt abgeschlossen ist. Wobei Tage, Wochen, Monate und Jahre bei einem Projekt nichts aussagen, denn einen Tag arbeiten, zwei Wochen pause machen und dann behaupten „Das ganze hat 2 Wochen und einen Tag gedauert“ ist nicht richtig.
Für mich sind immer die Stunden interessant, alleine um zu wissen wie lange ich für eine spezielle Aufgabe brauche, um bei der nächsten Schätzung Anhaltspunkte zu haben. Ich werde ja nicht jede Idee umsetzen, die 100 MS (Mann-Stunden, also 100 Stunden Arbeit für eine Person, 50 für zwei) dauert ohne zu wissen ob ich es überhaupt in der Zeit schaffe.

Ich habe mich also auf die Suche nach einer Anwendung gemacht, die es mir Ermöglicht, meine angewandte Zeit zu erfassen. Somit würde ich immer wissen für wen ich wie viel Zeit aufwende und ob die Aufgabe den Aufwand wert ist. Außerdem würde ich lernen, Zeitschätzungen zu präzisieren, dass ist sowohl privat als auch in meinem Beruf äußerst wichtig.

Die Suchkriterien

Ganz ohne Kriterien kann keine Suche gestartet werden, also stellte ich mir eine kleine Liste zusammen:

  1. PHP Anwendung (um überall darauf zugreifen zu können)
  2. Effiziennt (nicht tausend klicks um aufzuzeichnen)
  3. bestenfalls live (immer im Überblick wie lange die aktuelle Aktivität schon dauert)
  4. kostenlos (ich habe ja bekanntlich wenig Geld 😛 )
  5. Geldbeträge brauchen nicht erfasst werden, ich habe ja kein Nebengewerbe

Und somit wusste ich schon wonach ich suchen sollte, generell suche ich immer in Englisch, hier also die Suchergebnisse.

Zugegeben: ich habe nicht so gesucht, ich habe es in diesem Artikel nur so aussehen lassen, allerdings hätte ich gleich so suchen sollen!

Das Suchergebnis

Welche Systeme genau ich alles als Online-Demo getestet habe, weiß ich gar nicht mehr, einiges habe ich auch versucht aufzusetzen, was allerdings oftmals jämmerlich scheiterte.
Hängengeblieben bin ich an Kimai!

Loginmaske von Kimai mit Benutzername und Passwort

Designtechnisch gut umgesetzt, Loginmaske von Kimai mit Benutzername und Passwort

Schon beim Einloggen fällt auf: Kimai setzt großen Wert auf Design. Alles was Designtechnisch hochwertig ist, ist etwas für mich und klar: etwas duster schaut Kimai schon aus, allerdings ist das auch so ziemlich der einzige Kritikpunkt, wenn man das gesamte System betrachtet.

Kimai setzt auf verschiedene Techniken, unter anderem jQuery. Das jQuery-Framework macht die Anwendung sehr viel einfacher und ermöglicht das nutzen dieser Anwendung ohne längere Wartezeiten.
So öffnen sich Dialoge z. B. so wie man es aus Computer-Programmen kennt, nicht aber wie es normalerweise im Browser erfolgt: Dialoge werden nicht etwa durch erneutes laden der Website angezeigt, sondern nur durch das ändern von der Sichtbarkeitseinstellung der Dialoge. Vorher unsichtbar, nachher sichtbar und schon ist der Dialog sichtbar, ohne lästiges flackern / zucken der Seite.

Kimai Übersicht

Schon bei der Übersicht ist Piwik Informativ und dennoch übersichtlich.

Links oben sind zwei einfache Buttons, einer zum Ausloggen und einer um ein weiterers Button-Menü einzublenden. Rechts daneben ist ein Anzeigefenster, welches beschreibt, welche Datumsreichweite in der aktuellen Ansicht erfasst ist, klickt man auf eine der Datumsanzeigen wird ein sogenannter Datepicker angezeigt mithillfe dessen die Ansicht dann gefiltert werden kann.
Das aktuelle Datum und die aktuelle Zeit werden nicht ausgeblendet! Die Summe Zeit, die die aufgelisteten Arbeitsaktivitäten eingenommen haben, wird auch angezeigt. Diese Angaben (Startdatum, Enddatum, aktuelles Datum, aktuelle Zeit, Summe der Arbeitszeit) werden alle in dem oberen mittigen Kasten angezeigt.

Ansichtsinformationen (Start- und Enddatum, Arbeitszeit, aktuelles Datum und Uhrzeit)Kimais Übersicht der letzten Aktivitäten

Ansichtsinformationen (Start- und Enddatum, Arbeitszeit, aktuelles Datum und Uhrzeit)

Der obige rechte Kasten verdeutlicht, was gestartet wird, wenn auf den Play-Button geklickt wird, zum einen wird der „Kunde“ (K) (in meinem Fall gibt es keine Kunden) aufgelistet, dann das Projekt (P) des Kunden und die universelle Tätigkeit (T), die an dem Projekt des Kunden vorgenommen wird. So muss man nicht lange suchen, was gerade aktiviert ist, sondern überprüft vor dem Klick auf „Play/Start“ lediglich ob die Angaben links neben dem Button stimmen.

Angaben zur aktuellen Auswahl, umfassend: Kunde, Projekt und Tätigkeit. Daneben direkt der Startknopf.

Auswahlinformationen und Startknopf

Die Aufzeichnungsinformationen K, P und T wählt man im Fußbereich der Anwendung in einem drei-Listen-Verfahren einstellen, also zu erst den Kunden, dann das Projekt (die zu dem Kunden passenden sind nach dessen Wahl grünlich hinterlegt) und dann die Tätigkeit. Auch hier wird das jQuery-Framework gut eingesetzt, alle Klicks, Ansichtsänderungen und Filter arbeiten ohne erneutes laden der Website, also nur mit nachladen bestimmter Bereiche. Dies schont den Traffic und wenn das Nachladen gut umgesetzt ist, erhöht es produktivität und nutzungsspaß.

Die Fußzeile dient auch als eine Art filter, denn speziell dort kann nach Kunde, Projekt und/oder Tätigkeit (gern auch mehrfachwahl) gefiltert werden.
Ist ein Filter aktiv wird die Einstellung Blau hinterlegt, allerdings hapert es bei den Filtern an der jQuery-Umsetzung. Der zweite Filter bei den Projekten kann gar nicht wirklich gewählt sein, er gehört zu dem zweiten „Kunden“, den ich prinzipiell schon durch den Kunden-Filter ausgeschlossen habe.

Kimai Export

Kimai ist ein Zeiterfassungssystem, welches auch in Unternehmen eingesetzt werden kann, daher auch die Bezeichnung „Kunde“. Ich persönlich habe keine Kunden, da ich kein Inhaber eines Nebengewerbe / Gewerbe bin. Ich mache etwas für Freunde, welche ich in Kimai als Kunden erfasse.
Aus Sicht eines Gewerbe jedenfalls, ist es nötig, eine Abrechnung der Stunden vorzunehmen, dies erfolgt über den Export.

Bei dem Export verhält sich Kimai ähnlich wie bei der Übersicht, auch hier gibt es die Datumsreichweite und die Fußzeile, beides sind grundlegend Filtereigenschaften.
Nachdem die Ansicht gefiltert ist, kann sie in PDF, XLS, CSV oder eine „Druckbare Tabelle“ exportiert werden.
Die jeweiligen Exporte enthalten verschieden viele Details, grundlegend jedoch Aktivität und Preis, anschließend am Ende des Exportes noch eine Preissumme.

Ist ein Export einmal durchgeführt, sind die einzelnen Arbeitsaktivitäten immer noch nicht als „Abgerechnet“ markiert, dies muss manuell durchgeführt werden, was auch sinnvoll ist! Das bedeutet aber nicht, dass jeder Eintrag der gesamten Ansicht durchgeklickt werden muss, es gibt auch einen Button, welcher alle Einträge der Ansicht auf „Abgerechnet“ setzt.

In jedem Export werden auch Kostenpunkte, die nichts mit aktivitäten zu tun haben berechnet. Zu derartigen Ausgaben komme ich später.

Um die Exporte variabel zu halten, hat jeder eine individuelle Einstellmöglichkeit. Der Einstellungsdialog wird angezeigt, nachdem eine Exportart gewählt wurde.

Kimais PDF-Export Einstellmöglichkeiten

Kimais PDF-Export Einstellmöglichkeiten

Kimais Export-Bestätigung

Kimais Export-Bestätigung

Kimais CSV-Export Einstellmöglichkeiten

Kimais CSV-Export Einstellmöglichkeiten

Kimais Export-Bestätigung

Kimais Export-Bestätigung

Wie zu erkennen gibt es bei zwei Exportarten lediglich den Dialog zu bestätigen, bei PDF und dem CSV-Export kann umfangreicher eingestellt werden.
Sinnvoll ist der Dialog bei den beiden Exportarten auf jeden Fall, denn dies schaft Transparenz und ermöglicht Nutzern das einfache exportieren mit Sonderwünschen.

Kimai-Administration

Für die Administration, die Feineinstellungen an Kimai, gibt es das sogenannte „Admin Panel“, in welchem z. B. Kunden oder deren Projekte eingetragen werden können.

Kimais 'Admin Panel' bietet die Möglichkeit, Kunden zu editieren, de- bzw. aktivieren und natürlich auch anzulegen.

Kundenverwaltung in Kimais 'Admin Panel'

Kimais 'Admin Panel' bietet die Möglichkeit, Kundenprojekte zu editieren, de- bzw. aktivieren und natürlich auch anzulegen.

Kimais Projektverwaltung im 'Admin Panel'

Über das ‚Admin Panel‘ können auch Tätigkeiten hinzugefügt bzw. ausgeblendet werden.
Zu jeder Tätigkeit kann ein Name, ein allgemeiner Stundenlohn, ein persöhnlicher Stundenlohn, die Sichtbarkeit und ein Kommentar eingestellt werden.

Einmalige Ausgaben (etwa Fahrtkosten) können auch erfasst werden, dazu muss ein Projekt gewählt, ein Tag und eine Uhrzeit sowie Betrag, Verwendung und Kommentar angegeben werden.

Einmalige Ausgaben werden bei Kimai in einer seperaten Übersicht aufgeführt, dort können sie auch eingegeben werden.

Eintragen einer einmaligen Ausgabe

Ich nutze Kimai nicht täglich und auch nicht viele Stunden am Stück, da ich schon hauptberuflich viel Zeit am Computer verbringe. Daher habe ich keine Erfahrung mit einem viel genutzten Kimai-System. Wenn also jemand dieses System schon längere Zeit und eventuell ausgiebiger nutzt als ich, darf dieser Jemand gerne ein Kommentar hinterlassen.

USVN – User-Friendly SVN

Genesis Mining

Lang lang ist es her, das liegt ein einem ‘neuen Hobby’: ein VServer.

Nach vielen Strapazen (inklusive Providerwechsel, an dieser Stelle ein Lob an die Internetagentur WAS) habe ich ihn richtig eingerichtet.

Warum ein VServer

Für mich interessant sind die -auf einmal- günstigen Domainpreis :), außerdem das Thema Subversion.

Subversion

Nachdem ich den VServer zur Nutzung von Subversion eingerichtet habe und einiges schon damit erstellt und verwaltet habe, wollte ich das ganze einfacher gestalten, also das Verwalten von angelegten Repositorys oder das anlegen neuer Repositorys.

Ich habe also bei Google gesucht und mich für das User-friendly SVN entschieden.

Weiterlesen