Improving your Drupal 8 Development Workflow. by Jesus Manuel Olivas / WeKnow
|
|
- Oscar Chase
- 5 years ago
- Views:
Transcription
1 Improving your Drupal 8 Development Workflow by Jesus Manuel Olivas / WeKnow
2 WHO AM I? Jesus Manuel Olivas jmolivas jmolivas drupal.org/u/jmolivas jmolivas.weknowinc.com
3
4 What we know about? Drupal and surrounding technologies. Symfony, ReactJS, MeteorJS, Docker, Ansible. Creators and maintainers of Drupal Console Project. Distributed team in 12 countries. Partner agencies in the US and Canada. Talent as a service Staff Augmentation Agency. Hire us!
5 Local environment
6 Local environment. Isolate local machine from project dependencies. Easy and simple to start and continue working on existing projects. Facilitate on boarding and adding new team members. Project scope configurations. Shareable with the team using a code repository via git. Mimic production environment and other temporary stages.
7 Local environment. OS Native, LAMP, Dev Desktop XAMPP => MAMP => WAMP => Vagrant => Docker =>
8 Vagrant Docker
9 Local environment. DrupalVM => Docksal => DDEV => Lando => Outrigger => Docker4Drupal =>
10 Download and Install Drupal 8
11 Download Drupal (Composer) # Includes configurations for Docker and DrupalConsole. composer create-project weknowinc/drupal-project /path/to/drupal # Drupal Vanilla composer create-project drupal/drupal /path/to/drupal # Try Drupal (any distro) + Docker composer create-project weknowinc/try-drupal /path/to/drupal
12 Download Drupal (Git Drupal Console) # Clone project using git git clone git@github.com:weknowinc/drupal-project.git # Create project using Drupal Console drupal site:new --repository=weknowinc/drupal-project \ --directory=/path/to/drupal-project/
13 Manage environment variables (.env.dist =>.env) # Copy env file cp.env.dist.env # Customize values vim.env
14 What if this is not a new project? How to automate this? # Create site alias,.env, and docker-compose.yml files. drupal dockerize (Available on ETA DrupalCon Nashville) # This will run drupal generate:site:alias drupal dotenv:init drupal docker:init
15 Environment variables (.env) ENVIRONMENT=develop HOST_NAME=drupal.develop DATABASE_NAME=drupal HOST_PORT=80 DATABASE_USER=drupal DATABASE_PASSWORD=drupal DATABASE_HOST=mariadb DRUPAL_ROOT=/var/www/html SERVER_ROOT=/var/www/html/web DATABASE_PORT=3306
16 Ignore configuration files (.gitignore) # External dependencies vendor # Files web/sites/*/files # Drupal dependencies web/core web/modules/contrib web/themes/contrib web/profiles/contrib web/libraries/contrib # env file.env # DB backups mariadb-init
17 The new directory structure drupal8.dev/ LICENSE README.md composer.json composer.lock scripts vendor web web/ autoload.php core index.php modules profiles sites themes
18 Start and stop containers # Start containers docker-compose up # Start containers daemon docker-compose up -d # Stop containers docker-compose down # Stop containers destroy data docker-compose down -v
19 Docker commands # Check containers docker ps -a # Stop all containers docker stop $(docker ps -a -q) # Remove unused data docker volume prune # Remove all containers docker rm $(docker ps -a -q)
20 docker-compose.yml overview version: "2.3" services: mariadb: php: nginx: mailhog: traefik: volumes: mysqldata: driver: "local"
21 docker-compose.yml mariadb 1/2 mariadb: image: wodby/mariadb: env_file:./.env environment: MYSQL_RANDOM_ROOT_PASSWORD: 'true' MYSQL_DATABASE: ${DATABASE_NAME} MYSQL_USER: ${DATABASE_USER} MYSQL_PASSWORD: ${DATABASE_PASSWORD}
22 docker-compose.yml mariadb 2/2 volumes: - mysqldata:/var/lib/mysql # Uncomment next line and place DB dump.sql file(s) here # -./mariadb-init:/docker-entrypoint-initdb.d healthcheck: test: ["CMD", "mysqladmin","ping", "-h", "localhost"] timeout: 20s retries: 10
23 docker-compose.yml php 1/2 php: image: wodby/drupal-php: env_file:./.env environment: PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025 DB_HOST: ${DATABASE_HOST} DB_USER: ${DATABASE_USER} DB_PASSWORD: ${DATABASE_PASSWORD} DB_NAME: ${DATABASE_NAME} DB_DRIVER: mysql
24 docker-compose.yml php 2/2 volumes: # use :cached config for better performance on osx -./:${DRUPAL_ROOT}:cached depends_on: mariadb: condition: service_health
25 docker-compose.yml nginx 1/2 nginx: image: wodby/drupal-nginx: env_file:./.env depends_on: - php environment: NGINX_STATIC_CONTENT_OPEN_FILE_CACHE: "off" NGINX_ERROR_LOG_LEVEL: debug NGINX_BACKEND_HOST: php NGINX_SERVER_ROOT: ${SERVER_ROOT}
26 docker-compose.yml nginx 2/2 volumes: # use :cached config for better performance on osx -./:${DRUPAL_ROOT}:cached labels: - 'traefik.backend=nginx' - 'traefik.port=80' - 'traefik.frontend.rule=host:${host_name}'
27 docker-compose.yml mailhog mailhog: image: mailhog/mailhog env_file:./.env labels: - 'traefik.backend=mailhog' - 'traefik.port=8025' - 'traefik.frontend.rule=host:mailhog.${host_name}'
28 docker-compose.yml traefik traefik: image: traefik env_file:./.env command: -c /dev/null --web --docker --loglevel=info ports: - '${HOST_PORT}:${HOST_PORT}' volumes: - /var/run/docker.sock:/var/run/docker.sock
29 Using Composer to manage project dependencies
30 Composer
31
32 Using composer within the container Drupal 8 really takes a lot of advantages of using composer, you can install/uninstall dependencies and apply patches. Although it s a good practice when using Docker, to run this commands inside your container because if you have a PHP version on your local machine, you could install dependencies that are not suitable for your container instance.
33 Ahoy Ahoy is command line tool that gives each of your projects their own CLI app with with zero code and dependencies.
34 .ahoy.yml ahoyapi: v2 commands: composer: cmd: docker-compose exec --user=82 php composer usage: Run drush commands in the cli service container. stop: cmd: docker-compose stop usage: Stop the docker-compose containers. down: cmd: docker-compose down usage: Stop and remove the docker-compose containers.
35 Execute composer (within the container) # Execute composer within the container docker-compose exec --user=82 php composer install # Execute composer within the container using ahoy ahoy composer install
36 Manage dependencies ahoy composer require drupal/admin_toolbar ahoy composer update drupal/admin_toolbar ahoy composer update drupal/admin_toolbar --with-dependencies ahoy composer remove drupal/admin_toolbar
37 Composer commands ahoy composer why drupal/admin_toolbar ahoy composer show [-o] [drupal/admin_toolbar] ahoy composer check-platform-reqs ahoy composer diagnose
38 How composer know about Drupal dependencies "repositories": [ { "type": "composer", "url": " } ],
39 How composer know where to download dependencies "extra": { "installer-paths": { "docroot/core": [ "type:drupal-core" ], "docroot/modules/contrib/{$name}": [ "type:drupal-module" ], "docroot/theme/contrib/{$name}": [ type:drupal-theme" ] } }
40 Apply patches (composer.json) "extra": { "patches": { "drupal/admin_toolbar": { "Patch description": URL/local path to patch" } } }
41 Composer configuration "minimum-stability": "dev", "prefer-stable": true, "config": { "platform": { "php": 7.0, "sort-packages": true } }
42 Managing external libraries and dependencies
43 Register a drupal-library (composer.json) "repositories": [ { "type": "package", "package": { "name": "ckeditor/codesnippet", "description": "This plugin ", "type": "drupal-library", "homepage": " "version": 4.7.3, "dist": { "type": "zip", "url": " "reference": "master" } } } ],
44 Download a drupal-library (composer) composer require ckeditor/codesnippet # composer.json "extra": { "installer-paths": { "web/libraries/{$name}": [ type:drupal-library" ], } }
45 Drupal Console
46
47 Drupal Console Launcher curl -L -o drupal.phar mv drupal.phar /usr/local/bin/drupal chmod +x /usr/local/bin/drupal
48 Why do I need the Launcher? This is a global executable that enables you to run the command, drupal, from any directory within your site's project. Without it you will be inconvenienced by having to run the command only from your drupal root directory. For example, if you have Drupal root in a /web directory, and a composer.json and your vendor directory in the directory above that, you will be able to run the drupal command from the same directory as the composer.json file. Even better, you can run it from any subdirectory under that as many levels deep as you would like to go.
49 Drupal Console per-site installation composer require drupal/console:~1.0 \ --prefer-dist \ --optimize-autoloader
50 Site alias Drupal Console allows you to run commands from your local server but being able to execute those commands on a local, remote (VPS, PaaS) or virtual (VM, Docker) Drupal installation using site aliases. A site alias file use the YAML format to provide a collection of predefined options. Once an alias is defined you can call them using a short name.
51 Site alias console/sites/drupal.yml (container docker4drupal) develop: root: /var/www/html extra-options: docker-compose exec --user=82 php type: container
52 Site alias console/sites/drupal.yml (ssh drupalvm) drupalvm: root: /var/www/drupalvm/drupal host: user: vagrant extra-options: '-o PasswordAuthentication=no -i ~/.vagrant.d/insecure_private_key' type: ssh
53 Execute Drupal Console using site alias # Using the --target option drupal --target=drupal.develop cr all # Using the identifier cr all
54 Configuration Management Managing configuration changes through the CLI. Install Drupal and import a previously exported configuration. Override configuration per environment Content synchronization.
55 Managing configuration changes through the CLI.
56 Configuration Management In Drupal, configuration is the collection of admin settings that determine how the site functions, as opposed to the content of the site. Configuration will typically include things such as the site name, the content types and fields, taxonomy vocabularies, views and so on.
57 Configuration system The Drupal configuration system handles configuration in a unified manner. By default, Drupal stores configuration data in the database, but it can be exported to YAML files, allowing the configuration to be managed by version control.
58 Configuration Management Configuration is a mapping of keys and values. Stored on the Database by default. Exported as YAML for synchronization between environments. Once a module is installed the configuration provided by the module is owned by the site not the by the module anymore.
59 Exporting Configuration drupal config:export drupal config:export [--directory] [--tar] drupal config:export:single [--directory] [--module] drupal config:export:content:type drupal config:export:view
60 Importing Configuration drupal config:import drupal config:import [--file] [--directory] drupal config:import:single [--directory] [--file] drupal config:import:single [--file] [--file]
61 Useful Configuration commands drupal config:diff drupal config:edit drupal config:override drupal config:delete drupal debug:config
62 Override configuration per environment
63 Configuration override system There are cases when configuration values need to be overridden for specific purposes as custom settings per environment. For this cases the Drupal configuration systems provides the configuration override system. This system allow you to override configuration values.
64 Configuration override system * Maintains these overrides as temporary layers on top of the standard configuration values. * Does not use overridden values for configuration forms. * May store overrides with other configuration files for staging and version control support.
65 Main web/sites/default/settings.php file $env = getenv('environment'); $base_path = $app_root. '/'. $site_path; $servicesfile = $base_path. '/services.'.$env.'.yml'; $settingsfile = $base_path. '/settings.'.$env.'.php'; if (file_exists($servicesfile)) { } $settings['container_yamls'][] = $servicesfile; if (file_exists($settingsfile)) { } include $settingsfile;
66 Using web/sites/default/services.develop.yml parameters: twig.config: { debug: true, auto_reload: true, cache: false } services: cache.backend.null: class: Drupal\Core\Cache\NullBackendFactory
67 Using web/sites/default/settings.develop.php <?php $config['system.performance']['css']['preprocess'] = FALSE; $config['system.performance']['js']['preprocess'] = FALSE; require_once DRUPAL_ROOT. '/modules/contrib/devel/kint/kint/kint.class.php'; Kint::$maxLevels = 5; $settings['cache']['bins']['render'] = 'cache.backend.null'; $settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
68 Showing overridden configuration # Pass the --show-overridden flag drupal debug:config system.performance --show-overridden
69 Config Override Inspector Config Override Inspector provides indicators to administrators where form fields represent configuration that is overridden. This module is especially useful for developers working on sites where there are configuration overrides in place depending on the environment. It prevents confusion that arise when changing a form setting, but appears to not take effect.
70 Install Drupal and import a previously exported configuration.
71 Configuration Management The Configuration Management (CM) system, is great. But wouldn't it be even more awesome to be able to install a site, export configuration and then re-install site from scratch importing the previously exported configuration?
72 Install site and import previously exported configuration. Not supported by Drupal out-of-the-box. "Site UUID in source storage does not match the target storage."
73 Why would you want to install your site from an existing configuration? Automate the creation of reproducible build/artifacts from scratch at any stage (Development, QA, Production) to test, launch or deploy your site. Simplify on-boarding for new developers to any project without the need to obtain a database-dump. Developers will be able spin-up sites from scratch just by installing the site and importing configuration files.
74 How to achieve this using Drupal Console? [ 1/2 ] Simple as updating your console/config.yml adding: application:... overrides: config: skip-validate-site-uuid: true
75 How to achieve this using Drupal Console? [ 2/2 ] Execute commands to install the site and import your previously exported configuration: drupal site:install --force no-interaction drupal config:import --no-interaction
76 Automate both commands command: name: build:install description: 'Build site by installing and importing configuration' commands: # Install site - command: site:install options: force: true arguments: profile: standard # Import configurations - command: config:import
77 Do I have other alternatives?
78 Using contributed modules to improve configuration management.
79 Configuration Split This module allows to define sets of configuration that will get exported to separate directories when exporting, and get merged together when importing.
80 Configuration Split Export Configuration # Export without development settings drupal config:export # Export including development settings drupal config_split:export --split=develop
81 Configuration Split Import Configuration # Import without development settings drupal config:import # Import including development settings drupal config_split:import --split=develop
82 Configuration Read-only mode This module allows to lock any configuration changes done via the Drupal admin UI. This can be useful in scenarios where for example configuration changes should not be done on the production environment, but only on specific environments.
83 Using web/sites/default/settings.production.php if (PHP_SAPI!== 'cli') { $settings['config_readonly'] = TRUE; } $settings['config_readonly_whitelist_patterns'] = [ system.site, views*', blocks*', ];
84 Deploying alternatives PaaS and VPS.
85 PaaS
86 Deploying site to a stage or production server.
87 VPS
88 Ansistrano (Ansible + Capistrano) ansistrano.deploy and ansistrano.rollback are Ansible Galaxy roles to easily manage the deployment process for scripting applications such as PHP, Python and Ruby. It's an Ansible port for Capistrano.
89 Ansistrano files.ansistrano/ deploy-prod.yml hosts_prod tasks after-symlink.yml
90 Workflow > Setup phase: Creates the folder structure to hold your releases > Code update phase: Puts the new release into your hosts > Symlink phase: After deploying the new release into your hosts, this step changes the current softlink to new the release > Cleanup phase: Removes any old version based in the ansistrano_keep_releases parameter (see "Role Variables")
91
92 hosts_prod production ansible_host=sandcamp-demo.com ansible_user=deploy
93 deploy-prod.yml name: Deploy prod hosts: all vars: ansistrano_keep_releases: 3 ansistrano_deploy_to: "/var/www/html/sandcamp-demo" ansistrano_allow_anonymous_stats: no ansistrano_after_symlink_tasks_file: "{{ playbook_dir }}/tasks/after-symlink.yml ansistrano_shared_paths: - docroot/sites/default/files ansistrano_deploy_via: git ansistrano_git_repo: git@github.com:weknowinc/sandcamp-demo.git ansistrano_git_branch: master roles: - { role: carlosbuenosvinos.ansistrano-deploy }
94 deploy-prod.yml # 1st release -- /var/www/my-app.com -- current -> /var/www/my-app.com/releases/ releases shared # 2nd release -- /var/www/my-app.com -- current -> /var/www/my-app.com/releases/ releases shared # 3rd release -- /var/www/my-app.com -- current -> /var/www/my-app.com/releases/ releases shared
95 .
Drupal 8 Development and Deployment Lifecycle. by Jesus Manuel Olivas & Omar Aguirre
Drupal 8 Development and Deployment Lifecycle by Jesus Manuel Olivas & Omar Aguirre WHO AM I? Jesus Manuel Olivas jmolivas@weknoinc.com jmolivas jmolivas drupal.org/u/jmolivas jmolivas.weknoinc.com WHO
More informationSCALING DRUPAL TO THE CLOUD WITH DOCKER AND AWS
SCALING DRUPAL TO THE CLOUD WITH DOCKER AND AWS Dr. Djun Kim Camp Pacific OUTLINE Overview Quick Intro to Docker Intro to AWS Designing a scalable application Connecting Drupal to AWS services Intro to
More informationMore Dev / Less Ops. Sean Dietrich DrupalCorn '18
More Dev / Less Ops Sean Dietrich DrupalCorn '18 Hi there! I m a Technical Lead at Kanopi Studios. @seanedietrich / sean_e_dietrich / sean.e.dietrich Maintainer on the Docksal Project Drupal Development
More informationBuild & Launch Tools (BLT) Automating best practices for enterprise sites
Build & Launch Tools (BLT) Automating best practices for enterprise sites Who are you? Matthew Grasmick @grasmash on Drupal.org, twitter, etc. Acquia Professional Services, 4yrs Drupalist, 9yrs Maintainer
More informationCONFIGURATION AS DEPENDENCY. Managing Drupal 8 Configuration with Git and Composer
CONFIGURATION AS DEPENDENCY Managing Drupal 8 Configuration with Git and Composer ERICH BEYRENT Senior Drupal Developer at BioRAFT Working with Drupal since 2004 Drupal: https://drupal.org/u/ebeyrent Twitter:
More informationTable of Contents. Drupal Console
Table of Contents Drupal Console Documentation What is the Drupal Console Why should you care about? How does Drupal Console help? Where do I find the project? Getting the project Using Composer Global
More informationConfiguration Management in Drupal 8
Configuration Management in Drupal 8 Antonio De Marco - antonio@nuvole.org Fabian Bircher - fabian@nuvole.org Nuvole a 100% Drupal company Our Distributed Team Italy Belgium Czech Republic Our Clients
More informationDrupal Command Line Instructions Windows 7 List All Files >>>CLICK HERE<<<
Drupal Command Line Instructions Windows 7 List All Files The command line patch utility can run on Windows natively with GnuWin32 or select all text and copy it to clipboard (Ctrl+ C), Menu _ project
More informationDevOps Workflow. From 0 to kube in 60 min. Christian Kniep, v Technical Account Manager, Docker Inc.
DevOps Workflow From 0 to kube in 60 min http://qnib.org/devops-workflow Christian Kniep, v2018-02-20 Technical Account Manager, Docker Inc. Motivation Iteration barriers Works on my Laptop! Why is DevOps
More informationAdvanced Configuration Management with Config Split et al. Fabian Bircher
Advanced Configuration Management with Config Split et al. Fabian Bircher fabian@nuvole.org web: nuvole.org twitter: @nuvoleweb Our Distributed Team Nuvole: a 100% Drupal company with a distributed team
More informationCOMPOSER IN DRUPAL WORLD
#drupaldevdays / Composer in Drupal World / @derhasi COMPOSER IN DRUPAL WORLD Johannes Haseitl - @derhasi ME Johannes Haseitl @derhasi everywhere Maintainer of Master, Search API Override,... CEO of undpaul
More informationDocker on VDS. Aurelijus Banelis
Docker on VDS Aurelijus Banelis Aurelijus Banelis Software developer aurelijus.banelis.lt aurelijus@banelis.lt Docker on VDS You will learn Why VDS? Why docker? What is docker? Is it possible? Why not?
More informationComposer and Drupal. CIDUG Meeting December 13, 2018 John Rearick
Composer and Drupal CIDUG Meeting December 13, 2018 John Rearick * Similar to other dependency managers such as: yum, apt, brew, macports, npm, pip, etc. * Helps manage dependency hell. * Lots of dependencies
More informationDocker for Development: Getting Started
Docker for Development: Getting Started Lisa H. Ridley Savas Labs DrupalCamp Chattanooga November 5, 2016 Who am I? Lisa Ridley, Director of Client Success, Savas Labs Lead Developer and Project Manager
More informationConfiguration Management
Configuration Management A True Life Story October 16, 2018 Page 1 Configuration Management: A True Life Story John E. Picozzi Senior Drupal Architect Drupal Providence 401-228-7660 oomphinc.com 72 Clifford
More informationDeveloping and Testing Java Microservices on Docker. Todd Fasullo Dir. Engineering
Developing and Testing Java Microservices on Docker Todd Fasullo Dir. Engineering Agenda Who is Smartsheet + why we started using Docker Docker fundamentals Demo - creating a service Demo - building service
More informationCon guration Management
Con guration Management Theory and practice Andrea Pescetti andrea@nuvole.org Fabian Bircher fabian@nuvole.org Antonio De Marco antonio@nuvole.org web: nuvole.org twitter: @nuvoleweb Our Distributed Team
More informationDrupal & Composer Matthew Grasmick & Jeff Geerling
Drupal & Composer Matthew Grasmick & Jeff Geerling Speakers Matthew Grasmick @grasmash Jeff Geerling @geerlingguy Acquian BLT maintainer 10+ years of Drupal Acquian Drupal VM maintainer Agenda Composer
More informationDr. Roland Huß, Red
" m " f o r m e n u, "? " f o r o t h e r s h o r t c u t s DOCKER PATTERNS Dr. Roland Huß, Red Hat, @ro14nd AGENDA Intro: Docker & Patterns Configuration Service Discovery Image Builder VM VS. CONTAINER
More informationDrupal Command Line Instructions Windows 7 List All Users >>>CLICK HERE<<<
Drupal Command Line Instructions Windows 7 List All Users Last updated January 7, 2015. Alternatively, Windows users can often just use the Drush Command Prompt You will find out about all the other options
More information" Qué me estás container?" Docker for dummies
" Qué me estás container?" Docker for dummies Sara Arjona @sara_arjona Pau Ferrer @crazyserver Developer at Moodle HQ Moodle Mobile developer at Moodle HQ #MootES18 Who uses Docker for development? Who
More informationStephan Hochdörfer //
From dev to prod with GitLab CI Stephan Hochdörfer // 21.06.2018 About me Stephan Hochdörfer Head of Technology, bitexpert AG (Mannheim, Germany) S.Hochdoerfer@bitExpert.de @shochdoerfer #PHP, #DevOps,
More informationBuild, test and release your python packages
Build, test and release your python packages Using DevPI, Docker and Jenkins David Melamed PyWeb #55-1st August 2016 A word about me Moved to Israel 8 years ago PhD in BioInformatics Senior Research Engineer
More informationThink Small to Scale Big
Think Small to Scale Big Intro to Containers for the Datacenter Admin Pete Zerger Principal Program Manager, MVP pete.zerger@cireson.com Cireson Lee Berg Blog, e-mail address, title Company Pete Zerger
More informationDrupal Command Line Instructions Windows 7 Network Drive >>>CLICK HERE<<<
Drupal Command Line Instructions Windows 7 Network Drive Applying patches, modifying files according to instructions in the patch file, This page only deals with some basic principles using the command
More informationQuick Prototyping+CI with LXC and Puppet
Quick Prototyping+CI with LXC and Puppet Ben Kero 2014-05-04 Introduction Ben Kero Release Engineer Responsible for version control systems: CVS, SVN, BZR, Darcs, RCS, Git, Mercurial Before at Mozilla
More informationBlog site (cont.) theme, 202 view creations, 205 Browser tools, 196 Buytaert, Dries, 185
Index A Administration, 157 backups and restore (see Backups and restore website) file system, 161 log files, 162 tasks, 157 updates and security patches, 165 user accounts, 166 Aggregator module, 218
More informationswiftenv Documentation
swiftenv Documentation Release 1.3.0 Kyle Fuller Sep 27, 2017 Contents 1 The User Guide 3 1.1 Installation................................................ 3 1.2 Getting Started..............................................
More informationJackalope Documentation
Jackalope Documentation Release 0.2.0 Bryson Tyrrell May 23, 2017 Getting Started 1 Create the Slack App for Your Team 3 2 Deploying the Slack App 5 2.1 Run from application.py.........................................
More informationGarment Documentation
Garment Documentation Release 0.1 Evan Borgstrom March 25, 2014 Contents i ii A collection of fabric tasks that roll up into a single deploy function. The whole process is coordinated through a single
More informationDockerfile Best Practices
Dockerfile Best Practices OpenRheinRuhr 2015 November 07th, 2015 1 Dockerfile Best Practices Outline About Dockerfile Best Practices Building Images This work is licensed under the Creative Commons Attribution-ShareAlike
More informationDocker for People. A brief and fairly painless introduction to Docker. Friday, November 17 th 11:00-11:45
Docker for People A brief and fairly painless introduction to Docker Friday, November 17 th 11:00-11:45 Greg Gómez Sung-Hee Lee The University of New Mexico IT NM TIE 2017 1 Docker for People Agenda: Greg:
More informationUsing DC/OS for Continuous Delivery
Using DC/OS for Continuous Delivery DevPulseCon 2017 Elizabeth K. Joseph, @pleia2 Mesosphere 1 Elizabeth K. Joseph, Developer Advocate, Mesosphere 15+ years working in open source communities 10+ years
More informationBy: Jeeva S. Chelladhurai
CI CD By: Jeeva S. Chelladhurai Tools SCM: www.github.com CI/CD: Jenkins 2.0 Important Plugins: Pipeline (for Jenkinsfile), git, github, SSH Slaves (for build slave) Platform: docker Container Orchestration:
More informationDevOps Course Content
DevOps Course Content 1. Introduction: Understanding Development Development SDLC using WaterFall & Agile Understanding Operations DevOps to the rescue What is DevOps DevOps SDLC Continuous Delivery model
More informationComposer Best Practices Nils Private Packagist
Composer Best Practices 2018 Private Packagist https://packagist.com 2018? Delete your lock files 2018? Delete your lock files Composer Ecosystem Reality Update 2018 Best Practices? Deployment Improving
More informationTangeloHub Documentation
TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................
More informationMagento Commerce Cloud. Implementing a Project Effectively
Magento Commerce Cloud Implementing a Project Effectively Nadiia Syvokonenko Software Engineer Magento Commerce Billy Gilbert Software Engineer Magento Commerce Magento Commerce Cloud Magento Commerce
More informationPhpmyadmin Ubuntu 10.04
Manual Install Apache Win7 7 Php Mysql Phpmyadmin Ubuntu 10.04 sudo apt-get install apache2 mysql-server php5 php5-mysql Example: sudo apt-get install php-apc php5-intl imagemagick phpmyadmin vsftpd php5-cli.
More informationDeploying Rails with Kubernetes
Deploying Rails with Kubernetes AWS Edition Pablo Acuña This book is for sale at http://leanpub.com/deploying-rails-with-kubernetes This version was published on 2016-05-21 This is a Leanpub book. Leanpub
More informationGit Command Line Tool Is Not Installed
Git Command Line Tool Is Not Installed Make Sure It Is Accessible On Y Error: "git" command line tool is not installed: make sure it is accessible on y I have installed git tool. even in git bash its showing
More informationComposer for Absolute Beginners. Alison Jo McCauley Drupal Developer, Cornell University
& l a up Dr Composer for Absolute Beginners Alison Jo McCauley Drupal Developer, Cornell University What is Composer? Composer is a (command-line) tool for dependency management in PHP. With composer,
More informationBeginners guide to at #phpworld
Beginners guide to deployments at #phpworld Let s talk deployment Your deploys should be as boring, straightforward, and stress-free as possible. - Zach Holman (https://zachholman.com/posts/deploying-software)
More informationInstalling and Using Docker Toolbox for Mac OSX and Windows
Installing and Using Docker Toolbox for Mac OSX and Windows One of the most compelling reasons to run Docker on your local machine is the speed at which you can deploy and build lab environments. As a
More informationHow To Install Modules Joomla 2.5 On Wamp Server Pdf
How To Install Modules Joomla 2.5 On Wamp Server Pdf This tutorial shows you how to install the full version of Joomla 3.4.1. on a Wamp. Can I install WordPress on Windows computer other than live WordPress
More informationBitnami MariaDB for Huawei Enterprise Cloud
Bitnami MariaDB for Huawei Enterprise Cloud First steps with the Bitnami MariaDB Stack Welcome to your new Bitnami application running on Huawei Enterprise Cloud! Here are a few questions (and answers!)
More informationTechnical Comparison Sheet: ez Platform Cloud vs Other Hosting Approaches
Technical Comparison Sheet: vs Other Approaches This is a technical comparison worksheet between the various approaches to deploy and host your ez Platform project. Each approach is unique and has its
More informationRuby in the Sky with Diamonds. August, 2014 Sao Paulo, Brazil
Ruby in the Sky with Diamonds August, 2014 Sao Paulo, Brazil JELASTIC PLATFORM AS INFRASTRUCTURE Jelastic provides enterprise cloud software that redefines the economics of cloud deployment and management.
More informationHow Docker Compose Changed My Life
How Docker Compose Changed My Life Bryson Tyrrell Desktop Support Specialist I m Bryson Tyrrell, a Desktop Services Specialist with Jamf s IT department. Or at least I was Bryson Tyrrell System Administrator
More informationMIRO DIETIKER Founder
DRUPAL SECURITY MIRO DIETIKER Founder I am I am consulting End User Agencies Site builder Hosters Developer Maintainer Open Source Initiative Leader Spring 2017 Security - Responsible disclosure...a vulnerability
More informationCMSilex Documentation
CMSilex Documentation Release 0.1 Leigh Murray December 01, 2016 Contents 1 Introduction 3 2 Usage 5 2.1 Installation................................................ 5 2.2 Bootstrap.................................................
More informationDEPLOYMENT MADE EASY!
DEPLOYMENT MADE EASY! Presented by Hunde Keba & Ashish Pagar 1 DSFederal Inc. We provide solutions to Federal Agencies Our technology solutions connect customers to the people they serve 2 Necessity is
More informationHow To Guide Using and Developing Custom Phases in IKAN ALM
How To Guide Using and Developing Custom Phases in IKAN ALM Release 5.6 January 2015 N.V. Schaliënhoevedreef 20A 2800 Mechelen BELGIUM 2006-2015 N.V. No part of this document may be reproduced or transmitted
More informationIndex. Alias syntax, 31 Author and commit attributes, 334
Index A Alias syntax, 31 Author and commit attributes, 334 B Bare repository, 19 Binary conflict creating conflicting changes, 218 during merging, 219 during rebasing, 221 Branches backup, 140 clone-with-branches
More informationCreating pipelines that build, test and deploy containerized artifacts Slides: Tom Adams
Creating pipelines that build, test and deploy containerized artifacts Slides: https://goo.gl/2mzfe6 Tom Adams tadams@thoughtworks.com 1 Who I am Tom Adams Tech Lead tadams@thoughtworks.com http://tadams289.blogspot.com
More informationWho is Docker and how he can help us? Heino Talvik
Who is Docker and how he can help us? Heino Talvik heino.talvik@seb.ee heino.talvik@gmail.com What is Docker? Software guy view: Marriage of infrastucture and Source Code Management Hardware guy view:
More informationWalter walterebert.de slideshare.net/walterebert
Walter Ebert @wltrd walterebert.de slideshare.net/walterebert https://getcomposer.org/doc/00-intro.md Composer installieren php -r \ "readfile('https://getcomposer.org/installer');" \ > composer-setup.php
More informationDrupal Command Line Instructions Windows 8.1 Setup >>>CLICK HERE<<<
Drupal Command Line Instructions Windows 8.1 Setup Learn how to install the Telnet Client in Windows, how to start it, how to where to find documentation about Telnet commands and where to find Telnet
More informationBitnami MySQL for Huawei Enterprise Cloud
Bitnami MySQL for Huawei Enterprise Cloud Description MySQL is a fast, reliable, scalable, and easy to use open-source relational database system. MySQL Server is intended for mission-critical, heavy-load
More informationManaging Dependencies and Runtime Security. ActiveState Deminar
ActiveState Deminar About ActiveState Track-record: 97% of Fortune 1000, 20+ years open source Polyglot: 5 languages - Python, Perl, Tcl, Go, Ruby Runtime Focus: concept to development to production Welcome
More informationSQL Server containers with in-container data
SQL Server containers with in-container data This article provides step-by-step instructions for working with SQL Server containers with databases running in the container s private file system ( in-container
More informationArup Nanda VP, Data Services Priceline.com
Jumpstarting Docker Arup Nanda VP, Data Services Priceline.com My application worked in Dev but not in QA Will it work in production? I need an environment right now No, I can t wait for 2 weeks I just
More informationInvestigating Containers for Future Services and User Application Support
Investigating Containers for Future Services and User Application Support JLAB CNI NLIT 2018 () Overview JLAB scope What is a container? Why are we interested? Platform-as-a-Service (PaaS) for orchestration
More informationHow To Start Mysql Use Linux Command Line Client In Xampp
How To Start Mysql Use Linux Command Line Client In Xampp It also assumes that you're familiar with the MySQL command-line client and that you And since both Amazon and Bitnami have a free tier, you can
More informationTechnical Architecture & Analysis
Technical Architecture & Analysis HS2 Technical Architecture & Analysis 15 October 2012 Anton Palitsyn 020 7426 8920 anton.palitsyn@precedent.co.uk Contents Contents... 2 Document info... 3 Authors...
More informationWHO'S TALKING? Edvinas Aleksejonokas Member of OXID core team Joined two years ago
OXID VM & SDK WHO'S TALKING? Edvinas Aleksejonokas Member of OXID core team Joined two years ago WHO'S TALKING? HONESTLY... A person who was really feed up by the fact that: Everyone had their own dev-env
More informationDrupal Command Line Instructions Windows 7 Networking >>>CLICK HERE<<<
Drupal Command Line Instructions Windows 7 Networking Applying patches, modifying files according to instructions in the patch file, is the This page only deals with some basic principles using the command
More informationINDIGO PAAS TUTORIAL. ! Marica Antonacci RIA INFN-Bari
INDIGO PAAS TUTORIAL RIA-653549! Marica Antonacci!! marica.antonacci@ba.infn.it! INFN-Bari INDIGO PAAS Tutorial Introductory Concepts TOSCA Ansible Docker Orchestrator APIs INDIGO TOSCA custom types and
More informationWebcart Documentation
Webcart Documentation Webcart E-Commerce Solution Webcart is a powerful multi-store shopping cart software that can help you to start and manage your online stores with ease. It supports multiple storefronts
More informationMigration Tool. User Guide. SHOPIFY to MAGENTO. Copyright 2014 LitExtension.com. All Rights Reserved.
SHOPIFY to MAGENTO Migration Tool User Guide Copyright 2014 LitExtension.com. All Rights Reserved. Shopify to Magento Migration Tool: User Guide Page 1 Contents 1. Preparation... 3 2. Set-up... 3 3. Set-up...
More informationAnsible Cookbook 2014
René Moser Tue Nov 25 23:13:45 UTC 2014 1 Contents Contents Intro 4 Basics 5 How do I use all hosts data in my play or template? 6 Solution................................................... 6 Explanation.................................................
More informationCreate an application with local persistent volumes
Local Persistent Volumes When you specify a local volume or volumes, tasks and their associated data are pinned to the node they are first launched on and will be relaunched on that node if they terminate.
More informationHow To Install Joomla Component 2.5 On Wamp Server 2.1
How To Install Joomla Component 2.5 On Wamp Server 2.1 1 Create a Place on Your Remote Host to Install Joomla! 2 Copy Files and 2.1 Upload all Files by FTP, 2.2 Upload a Compressed File. 3 Copy the Contents
More informationAdding Transparency and Automation into the Galaxy Tool Installation Process
Adding Transparency and Automation into the Galaxy Tool Installation Process Enis Afgan Johns Hopkins University Galaxy Team Galaxy Admins Web Meetup August 20, 2015. Outline Installing tools in bulk (i.e.,
More informationOpenShift Container Platform 3.9
OpenShift Container Platform 3.9 Ansible Playbook Bundle Development Guide Developing with Ansible Playbook Bundle (APB) Last Updated: 2018-07-30 OpenShift Container Platform 3.9 Ansible Playbook Bundle
More informationDrupal Command Line Instructions Windows 7 List >>>CLICK HERE<<<
Drupal Command Line Instructions Windows 7 List Drush is a command-line interface for Drupal that provides a wide set of utilities directory in your home, or the aliases directory of your local Drush installation.
More informationBUILDING, DEPLOYING AND MAINTAINING DRUPAL SITES LIKE A PRO. Bob Kepford Mediacurrent.com TheWeeklyDrop.com
BUILDING, DEPLOYING AND MAINTAINING DRUPAL SITES LIKE A PRO Bob Kepford Mediacurrent.com TheWeeklyDrop.com DEV -> STAGE -> PRODUCTION A sane workflow. HOW? Drush + Features + hook_update_n + Git + SSH
More informationGIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY
GIT FOR SYSTEM ADMINS JUSTIN ELLIOTT PENN STATE UNIVERSITY 1 WHAT IS VERSION CONTROL? Management of changes to documents like source code, scripts, text files Provides the ability to check documents in
More informationSQL Server inside a docker container. Christophe LAPORTE SQL Server MVP/MCM SQL Saturday 735 Helsinki 2018
SQL Server inside a docker container Christophe LAPORTE SQL Server MVP/MCM SQL Saturday 735 Helsinki 2018 Christophe LAPORTE ~ since 1997 : SQL 6.5 / WinNT4 christophe_laporte@hotmail.fr http://conseilit.wordpress.com/
More informationPHP-Einführung - Lesson 8 - Composer (Dependency manager) and JSON. Alexander Lichter June 27, 2017
PHP-Einführung - Lesson 8 - Composer (Dependency manager) and JSON Alexander Lichter June 27, 2017 Content of this lesson 1. Recap 2. Composer 3. JSON 4. Collections (next lesson) 1 Recap Recap Recap Recap
More informationMagento Migration Tool. User Guide. Shopify to Magento. Bigcommerce to Magento. 3DCart to Magento
Magento Migration Tool User Guide Shopify to Magento Bigcommerce to Magento 3DCart to Magento Copyright 2015 LitExtension.com. All Rights Reserved. Page 1 Contents 1. Preparation... 3 2. Setup... 4 3.
More informationpistahx type safe, design first, haxe web api by Emmanuel BOTROS YOUSSEF / mebyz
pistahx type safe, design first, haxe web api github.com/mebyz/pistahx - pistahx.io by Emmanuel BOTROS YOUSSEF / mebyz emmanuel.botros@gmail.com pistahx (disclamer!) : pistahx is an open-source work in
More informationDrupal Command Line Instructions Windows 7 List Files >>>CLICK HERE<<<
Drupal Command Line Instructions Windows 7 List Files Getting the Open Atrium files Before you can install Open Atrium, you need to get the files. There are (NOTE: These instructions are for *nix-based
More informationDrupal Command Line Instructions Windows 7 Network >>>CLICK HERE<<<
Drupal Command Line Instructions Windows 7 Network The command line patch utility can run on Windows natively with GnuWin32 or Unxutils, or via Instructions for applying patches using TortoiseSVN are available
More informationUsing Docker for fast and easy testing of MariaDB and MaxScale
Using Docker for fast and easy testing of MariaDB and MaxScale Alessandro Fustini Andrea Tosatto Alessandro Fustini Senior Java Developer MariaDB Expert Leading R&D at ColtEngine Certified MySQL DBA Andrea
More informationImproving the Magento 2 Developer Experience
Improving the Magento 2 Developer Experience Alan Kent Magento Chief Architect Consistent Magento 2 Feedback I have been working on some larger Magento 2.1 EE solutions for a few months now and I really
More informationCV. Techno Media Pratama. Hari Pratomo [COURIER MANAGEMENT SYSTEM]
2017 CV. Techno Media Pratama Hari Pratomo [COURIER MANAGEMENT SYSTEM] Courier Management System is a program that is sent or designed to facilitate the delivery business. Courier Management System Demo
More informationThe age of orchestration
The age of orchestration From Docker basics to cluster management NICOLA PAOLUCCI DEVELOPER INSTIGATOR ATLASSIAN @DURDN Three minute Docker intro? Time me and ring a bell if I am over it. Just kidding
More informationThe Long Road from Capistrano to Kubernetes
The Long Road from Capistrano to Kubernetes Tobias Schwab, Co-Founder of PhraseApp Slides: http://bit.ly/cap-to-kube How to deploy Ruby on Rails? Deploying Ruby on Rails required on all servers: OS + system
More informationTable of Contents. Drupal Console
Table of Contents Drupal Console Documentation What is the Drupal Console Why should you care about? How does Drupal Console help? Where do I find the project? Getting the project Using the Installer Installing
More informationOpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers
OpenShift 3 Technical Architecture Clayton Coleman, Dan McPherson Lead Engineers Principles The future of *aas Redefine the Application Networked components wired together Not just a web frontend anymore
More informationIndex. Chaminda Chandrasekara 2017 C. Chandrasekara, Beginning Build and Release Management with TFS 2017 and VSTS, DOI /
Index A Agent platforms, 10 system and user capabilities, 10 Agent pool add user, 12 assign permissions, 55 56 default pool, 8 hosted Linux pool, 8 hosted pool, 7 set up assign administrator role, 45 auto-provision
More informationDEVOPS COURSE CONTENT
LINUX Basics: Unix and linux difference Linux File system structure Basic linux/unix commands Changing file permissions and ownership Types of links soft and hard link Filter commands Simple filter and
More informationBehat Drupal Integration Documentation
Behat Drupal Integration Documentation Release 1.1 Brendan MacDonald Jul 19, 2017 Contents 1 Introduction 3 2 System Requirements 5 3 Installation 7 4 Adding it to an existing project 9 5 Initial setup
More informationWHITE PAPER AUGUST 2017 AN INTRODUCTION TO BOSH. by VMware
WHITE PAPER AUGUST 2017 AN INTRODUCTION TO by ware Table of Contents What is?...3 Overview...3 What Problems Does Solve?... 4 Use Cases... 6 Deploying...8 Architecture...8 References...8 CookBook: How
More informationSLI Learning Search Connect For Magento 2
SLI Learning Search Connect For Magento 2 User Guide v1.2.2 The Learning Search Connect module integrates with SLI Systems Search and provides an outstanding level of search customizability. Contents 1.
More informationOSM Hackfest Session 6 Performance & Fault Management Benjamín Díaz (Whitestack)
OSM Hackfest Session 6 Performance & Fault Management Benjamín Díaz (Whitestack) Introduction Performance and Fault Management capabilities have made important progress in Release FIVE. At the time of
More informationLENS Server Maintenance Guide JZ 2017/07/28
LENS Server Maintenance Guide JZ 2017/07/28 Duty Maintain LENS server with minimum downtime Patch critical vulnerabilities Assist LAB member for using the LENS services Evaluate for custom requirements
More informationupaas Documentation Release 0.2 Łukasz Mierzwa
upaas Documentation Release 0.2 Łukasz Mierzwa January 06, 2014 Contents 1 Release notes 3 1.1 About upaas............................................... 3 1.2 Changelog................................................
More informationLab 4: Configuring node.js apps with ATP
Lab 4: Configuring node.js apps with ATP Autonomous Transaction Processing provides all of the performance of the market-leading Oracle Database in an environment that is tuned and optimized for transaction
More information