Как выход — начал писать на вакансии сеньоров и мидлов со словами «Каким образом попасть к вам джуниором?» и объяснением почему должны взять — как правило обратная связь очень хорошая — зовут в 3 случаях из 4, а также можно заложить фундамент на будущее, если не подходите.
В книге он говорит о том, что разработчики docker считают, что наиболее правильным в работе контейнеров использовать один процесс на один контейнер.Всё верно. Это основная парадигма при использовании контейнеризации. Ноги растут из 12 factors. Можно одной картинкой
Подскажите, значит ли это, что если я хочу развернуть веб сервер то мне надо минимум 3 контейнераТак и есть. Дальнейший запуск всех приложений осуществляется одной командой. Поскольку она получается довольно длинной (как будто Ява приложение запускаешь), предпочтительно использовать для этих целей docker-compose. Там единственный файл в формате yaml, в котором можно описать, что в какой последовательности запускать и в случае необходимости перезапускать, сколько и каких ресурсов железа выделять каждому приложению и много много ещё чего.
Или это все непринципиально и все можно сложить в один контейнер и будет работать так же хорошо.Можно и так сделать. Правда проще и разумнее всего не заморачиваться в этом случае с контейнерами.
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
<VirtualHost myhost.com>
CustomLog /var/log/httpd/myhost.com.access.log combined
....
</VitrualHost>
server {
access_log /var/log/nginx/myhost.com.access.log;
}
def ch_payload(payload):
result = {}
for key, value in payload.items():
if isinstance(value, list):
if value:
value = value[0]
result[key] = value
if isinstance(value, dict):
result[key] = ch_payload(value)
return result
def get_value(payload, item, fallback=None):
"""
Получение вложенных данных
d = {'a': {'b': {'c': 1}}}
get_value(d, 'a.b.c')
"""
serialize_dict = ch_payload(payload)
def getitem(serialize_dict, name):
try:
return serialize_dict[name]
except (KeyError, TypeError):
return fallback
return reduce(getitem, item.split('.'), serialize_dict)
test = get_value(newMessage, "messages.items.peer_id")
import time
from selenium import webdriver
import selenium.webdriver.chrome.service as service
service = service.Service('/path/to/chromedriver')
service.start()
capabilities = {'chrome.binary': '/path/to/custom/chrome'}
driver = webdriver.Remote(service.service_url, capabilities)
driver.get('http://www.google.com/xhtml');
driver.quit()
-chip8/
-chip8/chip88/
-chip8/chip88/interface.py
-chip8/chip88/chip8.py
-chip8/chip88/__init__.py
-chip8/main.py
chip8
, в ней основной файл main.py
и один пакет chip88
. Тогда в файле main.py импорт из chip8.py должен выглядеть следующим образом:from chip88.chip import *
import *
— это антипаттерн, так лучше не делать. Импортируйте только то, что вы намерены использовать в этом модуле.