Skip to content

Instantly share code, notes, and snippets.

View superchell's full-sized avatar
🏋️‍♂️
Work hard

Oleg Mozolev superchell

🏋️‍♂️
Work hard
View GitHub Profile
@superchell
superchell / gist:9b118f3f4032f5bb8896bac9225bc446
Created November 30, 2018 15:19
настройка автодеплоя dokku с github для rails проекта
####### Установка сокета для связи контейнера проекта с Dokku #######
установить dokku-daemon https://github.com/dokku/dokku-daemon
systemctl enable dokku-daemon
systemctl start dokku-daemon
примонтировать директорию с сокетом dokku-daemon к образу проекта. ВАЖНО! Монтировать необходимо в существующую директорию образа, несуществующий путь автоматически создаваться не будет
dokku storage:mount <project_name> '/var/run/dokku-daemon:<existing directory in project img>'
####### Установка плагина для клонирования репозитория в dokku-проект ######
установить dokku clone - dokku plugin:install https://github.com/crisward/dokku-clone.git clone
скопировать содержимое (открытый ключ) /home/dokku/.ssh/id_rsa.pub
@superchell
superchell / postgres_version.txt
Created December 7, 2018 10:10
Как установить postgres необходимой версии в dokku?
## устанавливаем плагин dokku postgres ##
sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres
export POSTGRES_IMAGE_VERSION=9.6 !Важно по умолчанию плагин тянет последнюю стабильную версию postgres, если нам необходимо установить
какую-то иную версию, то перед созданием БД устанавливаем эту переменную
dokku postgres:create <db name>
dokku postgres:link <db name> <app name>
## Копирование файлов ##
docker cp foo.txt mycontainer:/foo.txt в контейнер
docker cp mycontainer:/foo.txt foo.txt из контейнера
Множественное копирование
docker cp src/. mycontainer:/target
docker cp mycontainer:/src/. target
## Bash в контейнере ##
docker ps находим id контейнера
docker exec -it <container_id> /bin/bash
## Восстановление из дампа ##
psql -U <username> -d <dbname> -1 -f <filename>.sql
или c помощью pg_restore
pg_restore -U <username> -d <dbname> -1 <filename>.dump
## Создание дампа ##
*из удаденной БД
pg_dump --dbname=<remote_db> --file=/path_to_save/dump.sql --username=<remote_user> --host=<remote IP> --port=5432
*из Dokku
ssh root@<remote>.com "dokku postgres:export <db_name>" | pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d "<local_db_name>"
@superchell
superchell / gist:5bd831fc77c8db0180df98cfad592149
Last active June 5, 2019 08:08
Docker and docker-compose for Mac
1. install docker https://docs.docker.com/docker-for-mac/install/
2. install docker-compose https://docs.docker.com/compose/install/
3. download docker-compose.yml and prepare_test_db.sh files in one shared directory (ask me how)
4. make bash script executable - 'chmod +x /your_directory/prepare_test_db.sh'
5. in docker-compose.yml folder run command 'docker-compose up'
find . -iregex '.*.jpg' -exec convert {} -sampling-factor 4:2:2 -strip -quality 75 -interlace plane -colorspace sRGB {} \; - конвертировать все jpeg в progressive
convert in.jpg -interlace plane out.jpg - сконвертировать один файл
проверить с помощью curl
curl -v 'https://dev-ehr.h24.ua/cable' -ps://dev-ehr.h24.ua' -H 'Sec-WebSocket-Key: MIN4DsiwEAutsE11kgG5rg==' -H 'Upgrade: websocket' -H 'Connection: Upgrade' -H 'Sec-WebSocket-Version: 13'
location /cable {
proxy_pass http://puma;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme; # <- most probably this one is missing
# This is a skeleton for testing models including examples of validations, callbacks,
# scopes, instance & class methods, associations, and more.
# Pick and choose what you want, as all models don't NEED to be tested at this depth.
#
# This skeleton also assumes you're using the following gems:
#
# rspec-rails: https://github.com/rspec/rspec-rails
# Shoulda-matchers: https://github.com/thoughtbot/shoulda-matchers
# shoulda-callback-matchers: https://github.com/beatrichartz/shoulda-callback-matchers
# factory_bot_rails: https://github.com/thoughtbot/factory_bot_rails
RED: code that simply does not work / compile
// ERROR - This code is throwing a specific reproducible error.
// BROKEN - This code is broken and will not run.
// WTF - WHAT THE FRIG.
ORANGE: code that works but is not right
// HACK - This code has intentionally been hacked in order to work. Should not go into production.
// FIXME - This code works but could be better. Needs better abstraction, maintainability, performance, etc.
// BUG - This code works and was expected to be right but a bug has been found. (usually flagged post production)
// REVIEW - This code is probably right but should be reviewed for piece of mind.
1. установить docker-compose
2. скачать файл docker-compose.yml https://drive.google.com/file/d/1he_FdwW-QHZFgHGXf2HNkwV-fsLa7T7z/view?usp=sharing
3. запустить docker-compose up -d в директории, куда скачался файл
4. После распаковки image и запуска контейнера зайти в контейнер с помощью docker exec -it nabaze_postgres /bin/bash
5. Обновить пакеты с помощью apt update
6. Установить ssh с помощью apt install openssh-server
7. Перейти в сессию юзера postgres с помощью su postgres
8. создать БД при помощи createdb nabaze_development, после чего выйти из сессии с помощью команды exit
9. Запустить скрипт ssh [email protected] "dokku postgres:export nabaze-db" | pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d nabaze_development
10. Ввести пароль, который я скину в личке