Clean Up Your Docker Registry

Delete unused digests of docker images and save space If you’re using your docker registry to push continuous updates you’ve probably noticed that the disk mount space for the registry is gradually growing. It looks like it’s time to have a registry clean up. Here’s how to do it. First, Let’s Get Familiar With the Jargon One docker image can have multiple tags. Each image has a digest, which is a unique value. When you do continuous pushes (with Read more

How to configure docker runner to authorize with private docker registry

If the private image is in a registry which does not require authentication you can just use the registry url in the Docker image field. If your registry requires authentication, it becomes a little more complicated. You will need to set up a script on the agent server which will run the docker login command. (in ~/.profile for example) docker login -u <myuser> -p <mypassword> registryurl Once this is configured and the remote agent has Read more

10 вещей, которые я хотел бы знать перед стартом проекта на Symfony

Прошло уже около двух лет с тех пор, как мы начали переписывать наш проект на Symfony2. Это было интересное время — работа с Symfony2+Doctrine2 была настоящим удовольствием после Битрикса. Конечно, оглядываясь назад, я понимаю, как не надо было делать, и сегодня делюсь этим с вами. 1. Не добавляйте файл composer.lock в .gitignore Если вы пишете на Symfony, то наверняка используете Composer. Если нет — значит, что-то у вас в самом начале не заладилось. Про странную Read more

Прозрачное кэширование в nginx для всех и каждого

Представим, что у нас есть сайт, на который регулярно дают ссылки с хабра.Нам нужно подготовить его к резким всплескам посещаемости. Как это сделать?С версии 0.8.46 в nginx появились опции, позволяющие легко и просто настроить прозрачное кэширование для анонимных пользователей.Для работы этой схемы от сайта требуется очень мало: достаточно лишь не начинать сессию, то есть не отправлять сессионную куку, без явной на то необходимости. Редкий сайт нельзя довести до такого состояния, а значит большинство сайтов можно Read more

Pramatic Uses of MySQL BIT Data Type

ummary: in this tutorial, you will learn about MySQL BIT data type and how to use it to store BIT data in a table. Introduction to MySQL BIT data type The BIT type that allows you to store bit values. Here is the syntax: BIT(n) The BIT(n) can store up to n-bit values. The n can range from 1 to 64. The default value of n is 1 if you skip it. Therefore the following Read more

Nginx cache: всё новое — хорошо забытое старое

В жизни каждого проекта настает время, когда сервер перестает отвечать требованиям SLA и буквально начинает захлебываться количеством пришедшего трафика. После чего начинается долгий процесс поиска узких мест, тяжелых запросов, неправильно созданных индексов, не кэшированных данных, либо наоборот, слишком часто обновляемых данных в кэше и других темных сторон проекта.Но что делать, когда ваш код “идеален”, все тяжелые запросы вынесены в фон, все, что можно, было закэшировано, а сервер все так же не дотягивает до нужных нам Read more

Настройка кеширования в nginx

В nginx начаная с версии 0.7.44 появилась возможность кешировать отдаваемые страницы, что может увеличить работы сайта в тысячу раз. Рассмотрим практический пример настройки кеширования. За основу будет взят сайт контент которого не меняется в зависимости от пользователя (авторизован или гость) и нет активно меняющихся данных (например голосований). Это важно, т.к. активно изменяющийся контент требует индивидуального подхода и зачастую сложных схем кеширования. В nginx кеширование отдельно настраевается для модулей proxy и fastcgi, ниже насмотрена настройка для Read more

Nginx Reverse Proxy with Caching

nginx.conf http { proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g; server { location / { proxy_pass http://1.2.3.4; proxy_set_header Host $host; proxy_buffering on; proxy_cache STATIC; proxy_cache_valid 200 1d; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; } } }

Switch by class (instanceof) in PHP

The following is more correct: $class = get_class($objectToTest); switch($class) { case TreeRequest::class: echo "tree request"; break; case GroundRequest::class: echo "ground request"; break; } This way namespaces are properly compared (you don’t have to type them out) and if anything changes such as the namespace or class name you’ll get a decent IDE error informing you that your code is broken.

Восемь причин изучить PHPDoc

Часто встречаю вопрос о том, что же это за странные блоки комментариев постоянно генерируются в представлениях: <?php <?php /* @var $this yii\web\View */ /* @var $searchModel \app\models\search\UserSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ ?> в ActiveRecord-классах: /** * This is the model class for table "{{%user}}". * * @property integer $id * @property string $username * @property string $auth_key * @property string $password_hash * @property string $email */ class User extends ActiveRecord { ... } Read more


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть