Quantcast
Channel: Библиотека знаний
Viewing all 1318 articles
Browse latest View live

Debian, Ubuntu - [Скрипты инсталяции]

$
0
0

Debian, Ubuntu

Настройки

Скрипты инсталяции

Сохранение/Восстановление/Обновление

Менеджеры окон

Полезное

Ссылки

Статьи

Ссылки на внешние источники


Mytop - [Mytop]

$
0
0

Mytop

mytop is a console-based (non-gui) tool for monitoring the threads and overall performance of a MySQL 3.22.x, 3.23.x, and 4.x server. It runs on most Unix systems (including Mac OS X) which have Perl, DBI, and Term::ReadKey installed. And with Term::ANSIColor installed you even get color. If you install Time::HiRes, you'll get good real-time queries/second stats. As of version 0.7, it even runs on Windows (somewhat).

Установка

$ wget http://jeremy.zawodny.com/mysql/mytop/mytop-1.6.tar.gz  

Использование

Мониторнг базы данных MySQL или MariaDB

  • mytop -u root -p password
  • mytop -S /var/run/mysqld/mysqld.sock -u root -p password -s 1

Debian

mytop -S /var/run/mysqld/mysqld.sock -u debian-sys-maint -p $(cat /etc/mysql/debian.cnf|grep password|sed 's/password = //'|head -n 1) -s 1

Multi IP

$
0
0

Multi IP

nano /etc/network/interfaces

auto lo
iface lo inet loopback

allow-hotplug eth0
auto eth0
iface eth0 inet static
        address 192.168.1.1
        netmask 255.255.255.0
        gateway 192.168.1.254
        dns-nameservers 8.8.8.8 8.8.4.4

# Additional IP list
auto eth0:0
iface eth0:0 inet static
    address 192.168.1.2
    netmask 255.255.255.25
  
# Additional IP list
auto eth0:1
iface eth0:1 inet static
    address 192.168.1.3
    netmask 255.255.255.255
auto eth0
allow-hotplug eth0
iface eth0 inet static

address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254

# Additioanl IP list
up ip addr add 192.168.1.2/24 dev eth0 label eth0:0
down ip addr del 192.168.1.2/24 dev eth0 label eth0:0

up ip addr add 192.168.1.3/24 dev eth0 label eth0:1
down ip addr del 192.168.1.3/24 dev eth0 label eth0:1

Программное обеспечение - [S]

$
0
0

Программное обеспечение

0-9

A

B

C

D

  • dpkg - Утилита установки пакетов
  • Dovecot - Postfix + Dovecot + MYSQL (IMAP/POP3-сервер)
  • dovecot_exim - Exim4 + Dovecot + MYSQL
  • du - Вычисляем занимаемое место на диске
  • DD - Клонирование диска/партиций
  • dhclient - Dhclient
  • Deluge - Torrent client
  • Dialog - Альтернативой dialog может служить whiptail, который даже присутствует в некоторых системах по умолчанию.

E

F

G

H

I

  • iotop - то же что и обычный top по CPU, но только по диску
  • LVM - Изменения размера логических томов LVM
  • IpSet - Блокируем много IP адресов с помощью ipset и iptables
  • iftop - display bandwidth usage on an interface
  • IPTraf - IP Network Monitoring Software
  • fail2ban - блокирует по IP найденных нарушителей

J

K

  • KVM - Виртуализация на Linux

L

  • lsmod - Список загруженных драйверов
  • links - Текстовой брузер с поддержкой JS
  • links2 - Текстовой брузер с поддержкой JS
  • LMSensors - Сенсоры: температура итд
    • LXC - Linux контейнеры

M

N

O

P

Q

R

S

T

U

  • usermod - Изменение пользовательского аккаунта
  • Unison - утилита для синхронизации файлов
  • updatedb - Пакет для построения индекса. Используется при вызове locate

V

W

X

Y

Z

SSL

Скрипт автоматической загрузки c github

$
0
0

Скрипт автоматической загрузки c github

  • git clone http:
  • git pull
  • git push
  • git checkout new_branch -f

Github

Скрипт автоматической загрузки с github.ru
Настроить тут: https://github.com/[Project-name]/admin/hooks
Перейти в "WebHook URLs" и добавить Url с параметрами
http://8.8.8.8/git_pull.php?site=site.ru&branch=new_branch
<?phpecho"Git pull<br>";$Branch=isset($_GET['branch'])? $_GET['branch']:"Body";$site_name=$_GET['site'];$path_to_dir='/var/www/nginx-sites/'.$site_name.'/github'; 
$cmd="cd $path_to_dir&& ";$cmd.="git reset --hard HEAD && ";$cmd.="git pull && ";$cmd.="git checkout $Branch -f "; 
echo"$cmd<br>"; 
echoshell_exec($cmd);

Pull request

Git - распределённая система управления версиями. - [Документация]

$
0
0

Git - распределённая система управления версиями.

Инструкции

Инициализация / init

$ git init
$ git config--global user.name "John Doe"
$ git config--global user.email johndoe@example.com

Linux/Unix/Macos

global
$ git config--global core.filemode false
local
$ git config core.filemode false

Windows

global
$ git config--global core.filemode false
$ git config--global core.preloadindex true
$ git config--global core.fscache true
$ git config--global gc.auto 256
$ git config--global status.submoduleSummary false
local
$ git config core.filemode false
$ git config core.preloadindex true
$ git config core.fscache true
$ git config gc.auto 256
$ git config status.submoduleSummary false

Конфигурация

Вывод установленных параметров

$ git config--local-l

Установка параметров

$ git config--local core.filemode true

Актуализация изменений

$ git checkout-- . &&git pull&&git submodule update --init--recursive

Локальное хранилище / stage

  • Добавление в индекс
    • git add <имя_файла>
    • git add *
    • git add .
    • git add -A - Добавить в индекс только удаленные файлы
  • Удаление из индекса
    • git rm <имя_файла>
    • git rm *.php
    • git reset - Отменить индексацию последних изменений
    • git rm --cached <ИМЯ_ФАЙЛА> - Удалить из индекса файл и добавить в игнор. Файл останется в каталоге.
    • git reset HEAD benchmarks.rb - Отменить индексацию файла benchmarks.rb

Локальный репозиторий

    • Фиксация изменений
      • git commit -m "Описание коммита"
      • git checkout <hash-коммита> - Переключиться на определенный коммит
      • git commit --amend - Удаление последнего коммита
    • Восстановление файлов из репозитория
      • git checkout <branch> # Перемещение указателя HEAD на комит или ветку
      • git reset --hard HEAD~n # Перемещение указателя HEAD на комит
      • git checkout -- <имя_файла> - восстановление файла из репозитория
      • git reset --hard origin/master - удалить все локальные изменения и коммиты
      • git reset --hard origin/master
      • git reset --hard HEAD^ # Сбросить все локальные измеения до текущего состояния
    • Перемещение комитов
      • git rebase -i HEAD~n # Позволяет переупорядочивать, менять комменты, выборочно удалять и прочее
    • Ветвление branch
      • git branch bug1Создать ветку bug1
      • git branch -d bug1Удалить ветку bug1
    • Пересадка веток / rebase
      • git rebase master
        1. git checkout master # переключаемся на бранч master
        2. git rebase bug1 # пересаживаем историю изменений ветки bug1 в master
      • или
        1. git checkout bug1
        2. git rebase master
        3. git checkout master
        4. git merge bug1 # При этом произойдет fast-forward merge

Отмена коммитов

До комита
  • git reset --hard HEAD
После комита
  • git reset --hard ORIG_HEAD
Документация

Временное хранилище / Stash

Часто возникает такая ситуация, что пока вы работаете над частью своего проекта, всё находится в беспорядочном состоянии, а вам нужно переключить ветки, чтобы немного поработать над чем-то другим. Подробнее...

Вместо git reset --hard, можно сначала файлы сохранять во временное хранилище, затем применять изменения.

  • git stashПоместить файлы во временное хранилище
  • git stash applyПрименить последнее изменение из стека / лога к текущей рабочей копии
  • git stash dropУдалить последнее изменение в стеке / лога
  • git stash listПоказать все изменения в стеке / логе
  • git stash showПоказать последнее измененеие в стеке / логе (патч)
  • git stash popПрименить последнее изменение из стека к текущей рабочей копии и удалить его из стека
  • git stash clearОчистить стек изменений

Удаленный репозиторий / origin

  • Синхронизация
    • git push origin master
    • git remote add origin <адрес_сервера>

Submodule / Субмодули

  • git submodule add git@github.com:Mirocow/express-chat.git
  • git submodule update –init [express-chat]
  • git submodule update --init --recursive - обновить все зависимые модули (репозитории)
  • git rm -r yii2-mongodb - Удалить сабмодуль yii2-mongodb
  • git rm -r yii2-redactor - Удалить сабмодуль yii2-redactor :!:
  • git submodule add -- /to/path/git/dir - Добавить локальный модуль (Необходимо указывать только полный путь до папки) :!:

Как вынести код в отдельный репозитоий

Дано:

  • Основной репозиторий app/
  • Необходимый код лежит тут app/vendor/mirocow/yii2-redactor
  • копируем код в отдельную папку и создаем репозитоий путь-до-репозитория/yii2-redactor
  • удаляем если есть уже ранее созданный модуль git rm -rf yii2-redactor
  • обязательно переходим в добавляемую папку app/vendor/mirocow
  • добавляем модуль как отдельный репозитоий из папки git submodule add -f путь-до-репозитория/yii2-redactor/

Отладка

GIT_CURL_VERBOSE

$ GIT_CURL_VERBOSE=1git clone htps://...

GIT_TRACE

Принимает значаения 1, 2 или true

$ GIT_TRACE=2git clone htps://...

Настройка

  • git config color.ui true - использовать цветной вывод в терминале

http://marklodato.github.io/visual-git-guide/index-ru.html?no-svg

Настройка deploy on github

Настройка github для работы с Deploy keys

Ошибки

Ошибка: There is no tracking information for the current branch

При возникновении ошибки вида

$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-pull(1)for details
 
    git pull<remote><branch> 
If you wish to set tracking information for this branch you can do so with:
 
    git branch--set-upstream-to=origin/<branch> master

следует выполнить

$ git pull origin master
$ git branch--set-upstream-to=origin/master master
$ git pull

Видеоуроки

Документация

Сервер

Клиенты

Code Review

Ссылки

Exim4 - Тестирование - [Тестирование]

$
0
0

Exim4 - Тестирование

PHP

sendmail_path = "/usr/sbin/exim4 -t"

Тестирование

  • apt-get install mailutils
$ echo"This is a test."| mail -s Testing someone@somedomain.com
$ exim -d+all -bt someone@somedomain.com

Ошибки и их решения

/var/log/exim4/mainlog:2013-10-17 00:23:42 1VWXd4-0001Rk-PG ** some-mail@gmail.com R=dnslookup T=remote_smtp: SMTP error from remote mail server after end of data: host gmail-smtp-in.l.google.com [2a00:1450:4008:c01::1a]: 550-5.7.1 [2a00:ab00:106:37:200:69:218:0      16] Our system has detected that
550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR
550-5.7.1 records and authentication. Please review
550-5.7.1 https://support.google.com/mail/?p=ipv6_authentication_error for more
550 5.7.1 information. dx8si12019086bkc.176 - gsmtp

Решение в данном случае простое. Или прописать PTR на IPv6 или отключить поддержку IPv6 в Exim4. Для этого нада поместить disable_ipv6до begin acl

Ссылки


Exim 4 Smtp Server - [Ошибки и методы их исправления]

$
0
0

Exim 4 Smtp Server

Exim (EXperimental Internet Mailer) — это агент пересылки сообщений, используемый в операционных системах семейства Unix

Статьи

Ошибки и методы их исправления

Статьи / Документации

Docker - [Документация / Статьи]

$
0
0

Docker

VIRTUAL MACHINES CONTAINERS
Virtual machines include the application, the necessary binaries and libraries, and an entire guest operating system -- all of which can amount to tens of GBs. Containers include the application and all of its dependencies --but share the kernel with other containers, running as isolated processes in user space on the host operating system. Docker containers are not tied to any specific infrastructure: they run on any computer, on any infrastructure, and in any cloud.

Установка

nano /etc/apt/sources.list

 deb https://apt.dockerproject.org/repo debian-stretch main
$ apt autoremove --purge"lxc-docker*""docker.io*" docker-engine docker-compose
$ apt install docker-engine docker-compose
$ docker run hello-world
$ cd ./project/
$ docker-compose up

Запуск от пользователя

$ sudo groupadd docker
$ sudo gpasswd -a${USER} docker
$ sudo service docker restart

Mac OS

$ brew install docker docker-machine docker-compose docker-machine-driver-xhyve

Подробнее: https://github.com/zchee/docker-machine-driver-xhyve

Установить последнюю версию

$ curl -L"https://github.com/docker/compose/releases/download/1.9.0/docker-compose-$(uname -s)-$(uname -m)"-o/usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose

Работает с docker-compose.yml файлом

Подробнее: https://docs.docker.com/compose/install/
Пример: https://docs.docker.com/compose/gettingstarted/

Настройка

Dockerfile

  • FROM — указывает название образа (image), который будет взят за основу.
  • ENV — устанавливает переменную среды
  • RUN — запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера)
  • ADD — добавить файл в контейнер
  • VOLUME — указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры)
  • EXPOSE — указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры)
  • CMD — запустить процесс (это и будет процесс, вокруг которого построен контейнер)

docker-compose

  • docker-compose - средство сборки и настройки контейнеров
    • docker-compose up - поднять контейнеры с учетом правил сборки docker-compose.yml
    • -d - Для запуска сервисов в фоне (for "detached" mode)
$ docker-compose config
$ docker-compose up

Отдельно стоит запомнить команду docker-compose up. Она представляет собой упрощенный вызов docker-compose build && docker-compose run

Сборочные контейнеры в связке с docker-compose удобно использовать в окружении разработчика, когда требуется, например, производить некоторые действия при изменении исходников.

С docker-compose все просто, но есть нюансы. Использовать one shot контейнеры возможно только, если docker-compose up выполняется с опцией “-d”, в противном случае по завершении работы такого контейнера, compose останавливает все остальные контейнеры.

Рабочий процесс

Определение Dockerfile для каждого из сервисов Определение связей между сервисами при помощи docker-compose.ymlЗапус системы при помощи docker-compose up

Документация

docker-compose-mixer

Содержание конфигурационного docker-compose-mixer.yml файла по своей сути является небольшим конфигом, который описывает как именно два или более проектов будут стартовать вместе.

$ wget https://github.com/paunin/docker-compose-mixer/blob/master/dist/dc-mixer?raw=true-O/usr/local/bin/docker-compose-mixer
$ chmod +x /usr/local/bin/docker-compose-mixer

Работает с docker-compose-mixer.yml файлом

Решает проблемы:

  • Конфликты имен контейнеров c обновлением всего дерева конфигурации
  • Конфликты портов пробрасываемых на хост-машину
  • Переопределение свойств сервиса
  • Разрешение относительных путей
  • Удаление лишних или дублирующихся сервисов

Подробнее: https://habrahabr.ru/post/274581/

docker-machine

В GitHub-репозитории Docker Machine можно найти три bash-сценария, которые упрощают работу команд docker и docker-machine. Они отвечают за выполнение команд и пользовательские настройки командной строки bash.

Использование

создания нового хоста
$ docker-machine create --driver virtualbox machine-name

generic

$ docker-machine create \
  --driver generic \
  --generic-ip-address=203.0.113.81 \
  --generic-ssh-key ~/.ssh/id_rsa \
  machine-name
  • где machine-name - название создаваемой машины
запустить
$ docker-machine start machine-name
выполнение команд на удаленном хосте
$ docker-machine ssh machine-name cat/etc/hosts

или подключится к удаленному хосту

$ docker-machine ssh machine-name
просмотреть список доступных хостов
$ docker-machine ls
получить подробную информацию о хосте
$ docker-machine inspect machine-name
настройки соединения хоста,
$ docker-machine config machine-name
отображает IP-адрес хоста
$ docker-machine ip machine-name
отключение
$ docker-machine stop machine-name
удаление
$ docker-machine rm machine-name
список удаленных хостов
$ docker-machine ls

Сценарии

1 Сценарий
$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-prompt.bash -O/etc/bash_completion.d/docker-machine-prompt.bash

Чтобы завершить установку этого файла, нужно установить пользовательское значение переменной PS1 в файле .bashrc. PS1 – это специальная переменная оболочки, которая используется для редактирования командной строки bash. Откройте файл:

nano ~/.bashrc

Этот файл содержит три строки, которые начинаются с PS1:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

В конец каждой строки нужно вставить $(__docker_machine_ps1 " [%s]"). Должно получиться следующее:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__docker_machine_ps1 " [%s]")\$ '
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(__docker_machine_ps1 " [%s]")\$ '
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$(__docker_machine_ps1 " [%s]")$PS1"

Теперь имя активной машины будет отображаться в командной строке оболочки.

2 Сценарий

Второй сценарий называется docker-machine-wrapper.bash. Он добавляет к команде docker-machine подкоманду use, которая позволяет быстро переключаться между машинами Docker. Чтобы загрузить этот сценарий, наберите:

$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine-wrapper.bash -O/etc/bash_completion.d/docker-machine-wrapper.bash
3 Сценарий

Последний сценарий называется docker-machine.bash. Он отвечает за завершение команд docker-machine.

$ wget https://raw.githubusercontent.com/docker/machine/master/contrib/completion/bash/docker-machine.bash -O/etc/bash_completion.d/docker-machine.bash

Чтобы активировать внесённые изменения, закройте и снова откройте терминал. Если вы находитесь в сессии SSH, закройте и снова откройте сессию. Теперь завершение команд docker и docker-machine включено.

Контейнер

О контейнере

$ docker info
 
Containers: 9
 Running: 6
 Paused: 0
 Stopped: 3
Images: 28
Server Version: 1.12.5
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 90
 Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: null overlay host bridge
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 3.16.0-4-amd64
Operating System: Debian GNU/Linux stretch/sid
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.8 GiB
Name: nas.ztc
ID: 6JPA:SQDY:WJRJ:F2R7:NDTL:SIYE:Z6UK:AVIH:3EZS:7GJM:UCXZ:KPDU
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No memory limit support
WARNING: No swap limit support
WARNING: No kernel memory limit support
WARNING: No oom kill disable support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support
Insecure Registries:
 127.0.0.0/8

Статус

$ docker stats
 
CONTAINER           CPU %               MEM USAGE / LIMIT   MEM %               NET I/O               BLOCK I/O             PIDS
c8d1eb7a8f7a        0.02%0 B /0 B           0.00%38.07 kB /649.1 kB   258 kB /0 B          0
271073504ac9        0.10%0 B /0 B           0.00%6.517 kB /648 B      0 B /4.096 kB        0
462c8942181f        0.00%0 B /0 B           0.00%7.701 kB /648 B      0 B /0 B             0
94e2422ce234        0.33%0 B /0 B           0.00%22.98 MB /558.9 kB   1.798 MB /314.8 MB   0
6a43329858d9        18.18%0 B /0 B           0.00%7.431 kB /648 B      249.9 kB /20.62 GB   0
404d5b6bf024        0.08%0 B /0 B           0.00%7.959 kB /648 B      0 B /0 B             0

Работа с контейнером

$ docker exec-it security-mysql /bin/bash
$ docker exec-it security-mysql cat/etc/passwd

Список контейнеров (запущенных и нет)

$ docker ps-a
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS                   PORTS                                                NAMES
c8d1eb7a8f7a        teratek_web                         "/usr/bin/supervisord"   About an hour ago   Up 57 minutes            443/tcp, 0.0.0.0:80->80/tcp, 9000/tcp                security-web
271073504ac9        stefobark/sphinxdocker              "sh -c '/bin/sleep 5 "   About an hour ago   Up 57 minutes            0.0.0.0:9306->9306/tcp, 0.0.0.0:9312->9312/tcp       security-sphinx
462c8942181f        imkulikov/docker-grand-ambassador   "/usr/bin/grand-ambas"   About an hour ago   Up 57 minutes                                                                 security-proxy
94e2422ce234        mvertes/alpine-mongo                "/root/run.sh mongod"    About an hour ago   Up 57 minutes            0.0.0.0:27017->27017/tcp, 0.0.0.0:28017->28017/tcp   security-mongo
6a43329858d9        mysql                               "docker-entrypoint.sh"   About an hour ago   Up 57 minutes            0.0.0.0:3306->3306/tcp                               security-mysql
404d5b6bf024        redis:alpine                        "docker-entrypoint.sh"   About an hour ago   Up 57 minutes            6379/tcp                                             security-redis
  • -a - Позволяет увидеть не запущенные контейнеры
  • -l - Выведет список недавно созданных контейнеров
  • где docker-grand-ambassador прокси для 2-ух направленной связи контейнеров

Остановка контейнера

$ docker stop 7d0eb5cd3b3b

Удаление контейнера

$ docker rm 7d0eb5cd3b3b

Образы

Поиск образов

$ docker search alpine

Загрузка образа в систему

$ docker pull alpine
$ docker pull alpine:latest

Чистые образы

Готовые сервисы

Готовые сборки

Создание образа

$ docker build -t image-name .
  • Где . папка, где расположен Dockerfile
  • container-name - название создаваемого контейнера

Вывод списка образов

$ docker images

Запуск образа

$ docker run -d-p80:80-t image-name
$ docker run -d--publish8080:80-t image-name
  • 8080 - Порт хост машины
  • 80 - Порт контейнера
  • -i - откроет интерактивную оболочку контейнера (лучше не использова, а подключаться с помощью docker exec)
  • -t - название запускаемого контейнера

Пример управления контейнером из другого контейнера

$ docker run -v/var/run/docker.sock:/var/run/docker.sock \
       -v $(which docker):/bin/docker \
       -ti nachine_name

Пространства

Применяется для монтирования пространств из внешних источников. К примеру virtualbox

Сетевые драйверы

Логирование

Рецепты

Проблемы и их решения

Circular import between fpm and nginx

Возникает при циклическом связывании контейнеров (2-ух сторонее связывание) В качестве решенияпроблемы, на данный момент, можно воспользоваться прокси сервером/контейнером docker-grand-ambassador

fpm:
  build: ./build/fpm
  links:
    - ambassador:nginx
nginx:
  build: ./build/nginx
  links:
    - ambassador:fpm
ambassador:
  image: cpuguy83/docker-grand-ambassador
  volumes:
    - "/var/run/docker.sock:/var/run/docker.sock"
  command: "-name testapp_fpm_1 -name testapp_nginx_1"

ERROR: Couldn't connect to Docker daemon - you might need to rundocker-machine start default`

скорее всего вам потребуется сделать следующее:

$ docker-machine create --driver=xhyve dev --xhyve-experimental-nfs-share

Компоненты

  • docker-compose - Компановщик контейнеров
  • docker-machine - Это инструмент, позволяющий управлять удалёнными хостами Docker с локального компьютера.
  • Docker Toolbox - Комплект необходимых программ для Windows или MacOs (Внимание!!! ставит VirtualBox )
  • Weave Scope - Это очень удобный и наглядный сервис для мониторинга Docker контейнеров.
  • cAdvisor - Система мониторинга за контейнерами

Документация / Статьи

Другие системы виртуализации

Dockerfile

$
0
0

Dockerfile

  • FROM — указывает название образа (image), который будет взят за основу.
  • ENV — устанавливает переменную среды
  • RUN — запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера)
  • ADD — добавить файл в контейнер
  • VOLUME — указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры)
  • EXPOSE — указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры)
  • CMD — запустить процесс (это и будет процесс, вокруг которого построен контейнер)

Подробнее: https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

# Используем за основу контейнера Ubuntu 14.04 LTS
FROM ubuntu:14.04# Переключаем Ubuntu в неинтерактивный режим — чтобы избежать лишних запросов
ENV DEBIAN_FRONTEND noninteractive 
# Устанавливаем локаль
RUN locale-gen ru_RU.UTF-8&& dpkg-reconfigure locales 
 
# Добавляем необходимые репозитарии и устанавливаем пакеты
RUN apt-get install-y software-properties-common
RUN add-apt-repository -y ppa:ondrej/php5-5.6
RUN add-apt-repository -y ppa:nginx/stable
RUN sudoapt-key adv--keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C
RUN apt-get update
RUN apt-get upgrade-y
RUN apt-get install-ywget curl php5-fpm php5-mysql php5-gd php5-curl php-pear php-apc php5-mcrypt php5-imagick php5-memcache supervisor nginx
 
# Добавляем описание виртуального хоста
ADD astgo.ru /etc/nginx/sites-enabled/astgo.ru 
# Отключаем режим демона для Nginx (т.к. запускать будем сами) 
RUN echo"\ndaemon off;">>/etc/nginx/nginx.conf 
# Отключаем режим демона для php-fpm
RUN sed-i-e"s/;daemonize\s*=\s*yes/daemonize = no/g"/etc/php5/fpm/php-fpm.conf 
# Добавляем конфиг supervisor (описание процессов, которые мы хотим видеть запущенными на этом контейнере)
ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf 
 
# Объявляем, какие директории мы будем подключать
VOLUME ["/var/www"]# Объявляем, какой порт этот контейнер будет транслировать
EXPOSE 80# Запускаем supervisor
CMD ["/usr/bin/supervisord"]

GPG and git on macOS

$
0
0

GPG and git on macOS

  • Install https://gpgtools.org -- I'd suggest to do a customized install and deselect GPGMail.
  • Create or import a key -- see below for https://keybase.io
  • Run gpg --list-secret-keys and look for sec, use the key ID for the next step
  • Configure git to use GPG -- replace the key with the one from gpg --list-secret-keys
$ git config--global gpg.program /usr/local/MacGPG2/bin/gpg2
$ git config--global user.signingkey A6B167E1 
$ git config--global commit.gpgsign true

Документация / Статьи

JQuery plugins / Плагины (Bootstrap) - [Слайдеры]

$
0
0

JQuery plugins / Плагины (Bootstrap)

Cookie

Snippets

Коллекции / Обзоры

Визульное отображение / Виджеты

UI / Bootstrap

Редакторы

Работа с контентом

Themes

Templates

Комбобокс / Селекторы / Listbox

Tags

Переключатели

Календари / DatePicker

Анимация

Icons / Arows

Меню / Navbar

Mobile

Контекстное

Альтер / Промт

Блокирока контента

  • https://github.com/malsup/blockui/ - или всплывающее окно (пожайлуста подождите) или блокировка выбранного node

Template

Примеры

Сплитеры

Карусели

Скрол

Подсказки / ToolTip / Notify

Notify

growl

Просмотр в окне / Lightbox

Модальные окна

Слайдеры

Lazy images

Forms / Элементы форм

Стилизация

Checkbox

Editables / Tables / Sortable

Input controls

Masks

Control input length

Validate

Form Builder

Color Picker

Progress Bar

Autocomplete

Wizard

Buttos

Sliders

Spin / увелить-уменьшить значение type input

File Input

Tree view

Markdown

Pagination / Переключатели страниц

Прелоадер

Графики

Поведение пользователя

Посмотреть

Красивые клипы для души - [Best rock female]

$
0
0

Красивые клипы для души

Best rock female

Best rock male

Лейблы

Chanels

0-9

A

Amaranthe

ALESTORM

ARCH ENEMY

Angel Nation

B

BATTLE BEAST

BABYMETAL

BEAST IN BLACK

C

Clémentine Delauney (VISIONS OF ATLANTIS)

D

DELAIN

Doro

DIAMANTE

E

End Of The Dream

Edge Of Paradise

EXIT EDEN

EPICA

Emerald Mind

Eternal Idol

EDENBRIDGE

ELUVEITIE

F

Five Finger Death Punch

G

H

Helion Prime

Halestorm

I

Icon For Hire

IGNEA

J

K

KAMELOT

KOBRA AND THE LOTUS

L

LEAVES' EYES

LOUNA

M

Metalite

Marco Hietala (Nightwish)

N

Nightwish

O

P

PHANTASMA

Powerwolf

R

RAGE OF LIGHT

S

SEMBLANT

STORM SEEKER

STITCHED UP HEART

Symfobia

T

Tarja (Nightwish)

The Pretty Reckless

THY SHADE

The Dark Element

U

UNLEASH THE ARCHERS

V

VISIONS OF ATLANTIS

W

Within Temptation

Wind Rose

X

XANDRIA

Y

Z

Russian bands

М

Х

Хелависа

Э

Элизиум

Эпидемия

Эльфийская рукопись: Сказание на все времена

Последнее Испытание

Сокровище Энии

Официальные каналы груп

Остальные

Сборники

Концерты

Компоненты - создано

$
0
0

Компоненты

router

Состояния / Store

HTTP clients like ($.get(), $.post())

Лоадеры

При использовании vue-loader или vueify шаблоны внутри файлов *.vue будут скомпилированы в JavaScript на этапе сборки. Вам не потребуется компилятор в финальной сборке, а значит можно использовать сборки runtime-only.


Препроцессоры - создано

Frameworks - создано

Вопрос / Ответ

Вызовы компонентов - [Через ссылки $refs]

$
0
0

Вызовы компонентов

Q: Как вызвать метод из дочернего компонента?

Вызов чере $props

ребенок
const Mouse ={
    name:"Mouse",
    props:{
      render:{
        type:Function,
        required:true}},
    data(){return{
        x:0,
        y:0};},
    methods:{
      handleMouseMove(event){this.x= event.clientX;this.y= event.clientY;}},
    render(h){return(<div style={{ height:"100%"}} onMousemove={this.handleMouseMove}>{this.$props.render(this)}</div>);}};
родитель
new Vue({
    el:'#app',
    name 'app',
    components:{
      Mouse
    },
    methods:{
      __render({ x, y }){return(<h1>
            The mouse position is ({x},{y})</h1>);}},  
    created(){}});
<divid="app"><Mouse :render="__render"/></div>

Вызов через глобальный компонент EventBus

const $events =new Vue(); 
new Vue({
    name:'app-example',
    created(){
      $events.$emit('firstClick');}});
const= childComponent ={
    methods:{
        onFirstClick(){},},  
    created(){
        $events.$on('firstClick', parent =>{this.onFirstClick();});},};
<divid="app-example"><child-component></child-component></div

Если не нужны параметры, можно parent заменить на ()

        $events.$on('firstClick',()=>{this.onFirstClick();});

Вызов через зарегистрированный компонент EventBus

var bus =new Vue({}); 
Object.defineProperty(Vue.prototype,'$bus',{get(){returnthis.$root.bus;},set(newInstance){this.$root.bus= newInstance;},}); 
new Vue({
  name:'app-example',
    created(){this.$bus.$emit('firstClick');}});
const= childComponent ={
    methods:{
        onFirstClick(){},},  
    created(){this.$bus.$on('firstClick',(event)=>{this.onFirstClick();});},};
<divid="app-example"><child-component></child-component></div

Q: Как вызвать метод из родительского компонента?

С помощью $emit

const childComponent ={
  name:'child-component',
  methods:{
      something(){this.$emit('event',[x: y]);}});
<child-component @event="handler"></child-component>
new Vue({
  methods:{
      handler(params){
          console.log(params);}}});

Через ссылки $refs

import ChildForm from './components/ChildForm' 
new Vue({
  el:'#app',
  data:{
    item:{}},
  template: `
  <div><ChildForm :item="item" ref="form"/><button type="submit"@click.prevent="submit">Post</button></div>
  `,
  methods:{
    submit(){this.$refs.form.submit()}},
  components:{ ChildForm },});
<template>
 ...
</template> 
<script>
export default {
  name: 'NowForm',
  props: ['item'],
  methods: {
    submit() {
        ...
    }
  }
}
</script>

Внешний вызов через $refs

<divid="app"><h1>Component Test</h1><my-component ref="foo"></my-component></div> 
<buttonid="externalButton">External Button</button>
var MyComponent = Vue.extend({
  template:'<div><p>Hello</p><ul><li v-for="thing in things">{{ thing }}</li></ul></div>',
  data:function(){return{
      things:['first thing']};},
  methods:{
  	addThing:function(){this.things.push('another thing '+this.things.length);}}}); 
var vm =new Vue({
  el:'#app',
  components:{'my-component': MyComponent
  }}); 
document.getElementById("externalButton").onclick=function(){
  vm.$refs.foo.addThing();};

Через системный вызов $bus

import ChildForm from './components/ChildForm' 
new Vue({
  el:'#app',
  data:{
    item:{},
    bus:new Vue(),},
  template: `
  <div><ChildForm :item="item":bus="bus" ref="form"/><button type="submit"@click.prevent="submit">Post</button></div>
  `,
  methods:{
    submit(){this.bus.$emit('submit')}},
  components:{ ChildForm },});
<template>
 ...
</template> 
<script>
export default {
  name: 'NowForm',
  props: ['item', 'bus'],
  methods: {
    submit() {
        ...
    }
  },
  mounted() {
    this.bus.$on('submit', this.submit)
  },  
}
</script>

Java-Script - [Видеоуроки]

$
0
0
Viewing all 1318 articles
Browse latest View live