Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [LR] Docker lokalnie działa wolno
markonix
post 4.12.2017, 17:20:33
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Mam problem z wydajnością dockera na komputerze lokalnym. Docker odpalony na natywnej wirtualnej maszynie (Windows 10 Professional).
Generalnie ta sama aplikacja działa wolniej niż na przeciętnym dedyku, wydawałoby się, że lokalnie odpada sieć więc powinno to działać szybciej.
Ogólne działanie pół biedy ale gdy dłużej nic nie robię i odświeżam stronę to potrafi czasem 10 sekund mielić, słyszę wtedy że komputer pracuje.

W Debugbar:
Booting (3.96s)
Application (3.54s)
ale to szczerze mi mało mówi :/

Gdzie szukać przyczyny? Gdzieś znajdę jakieś logi (log nginx, który widzę live działa też z tym lagiem więc nic mi nie mówi). Mam wrażenie, że chodzi coraz ciężej (więcej kodu) ale żeby aż tak? Mam dość dobry procesor, a dysk na PCI Express x4 3 więc szybszy niż standardowy SSD..
Równolegle działający phpmyadmin śmiga aż miło.
Nie sądzę aby to była wina Windowsa zwłaszcza, że ktoś ma podobny problem z jabłku:
https://github.com/laradock/laradock/issues/1227



--------------------
Go to the top of the page
+Quote Post
nospor
post 4.12.2017, 17:29:12
Post #2





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Tak z czystej ciekawosci: ty odpalasz te wszystkie kontenery jakie sa domyslnie w laradoc?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
markonix
post 4.12.2017, 18:07:11
Post #3





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Kontenery odpalam 4 (workspace, nginx, mysql, php) + 1 phpmyadmin opcjonalnie.

Konfiguracja tego co odpalam:
Kod
############################
# General Setup
############################

### Application Path
# Point to your application code, will be available at `/var/www`.

APPLICATION=../

### Data Path:
# For all storage systems.

DATA_SAVE_PATH=~/.laradock/data

### PHP version
# Applies to the Workspace and PHP-FPM containers (Does not apply to HHVM)
# Accepted values: 71 - 70 - 56

PHP_VERSION=71

### PHP interpreter
# Accepted values: hhvm - php-fpm

PHP_INTERPRETER=php-fpm

############################
# Containers Customization
############################

### WORKSPACE ################################################################################
##########################

WORKSPACE_INSTALL_XDEBUG=false
WORKSPACE_INSTALL_LDAP=false
WORKSPACE_INSTALL_SOAP=true
WORKSPACE_INSTALL_MONGO=false
WORKSPACE_INSTALL_PHPREDIS=false
WORKSPACE_INSTALL_MSSQL=false
WORKSPACE_INSTALL_NODE=false
WORKSPACE_INSTALL_YARN=false
WORKSPACE_INSTALL_DRUSH=false
WORKSPACE_INSTALL_DRUPAL_CONSOLE=false
WORKSPACE_INSTALL_AEROSPIKE=false
WORKSPACE_INSTALL_V8JS=false
WORKSPACE_COMPOSER_GLOBAL_INSTALL=false
WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_LARAVEL_ENVOY=false
WORKSPACE_INSTALL_LARAVEL_INSTALLER=false
WORKSPACE_INSTALL_DEPLOYER=false
WORKSPACE_INSTALL_LINUXBREW=false
WORKSPACE_INSTALL_MC=false
WORKSPACE_INSTALL_SYMFONY=false
WORKSPACE_INSTALL_PYTHON=false
WORKSPACE_INSTALL_IMAGE_OPTIMIZERS=false
WORKSPACE_INSTALL_IMAGEMAGICK=false
WORKSPACE_INSTALL_TERRAFORM=false
WORKSPACE_INSTALL_DUSK_DEPS=false
WORKSPACE_PUID=1000
WORKSPACE_PGID=1000
WORKSPACE_CHROME_DRIVER_VERSION=2.32
WORKSPACE_NODE_VERSION=stable
WORKSPACE_YARN_VERSION=latest
WORKSPACE_TIMEZONE=UTC
WORKSPACE_SSH_PORT=2222

### PHP_FPM ################################################################################
############################

PHP_FPM_INSTALL_XDEBUG=false
PHP_FPM_INSTALL_MONGO=false
PHP_FPM_INSTALL_MSSQL=false
PHP_FPM_INSTALL_SOAP=true
PHP_FPM_INSTALL_ZIP_ARCHIVE=true
PHP_FPM_INSTALL_BCMATH=false
PHP_FPM_INSTALL_PHPREDIS=false
PHP_FPM_INSTALL_MEMCACHED=false
PHP_FPM_INSTALL_OPCACHE=false
PHP_FPM_INSTALL_EXIF=false
PHP_FPM_INSTALL_AEROSPIKE=false
PHP_FPM_INSTALL_MYSQLI=false
PHP_FPM_INSTALL_TOKENIZER=false
PHP_FPM_INSTALL_INTL=false
PHP_FPM_INSTALL_GHOSTSCRIPT=false
PHP_FPM_INSTALL_LDAP=false
PHP_FPM_INSTALL_SWOOLE=false
PHP_FPM_INSTALL_IMAGE_OPTIMIZERS=false
PHP_FPM_INSTALL_IMAGEMAGICK=true

### NGINX ################################################################################
##############################

NGINX_HOST_HTTP_PORT=80
NGINX_HOST_HTTPS_PORT=443
NGINX_HOST_LOG_PATH=./logs/nginx/
NGINX_SITES_PATH=./nginx/sites/
NGINX_PHP_UPSTREAM_CONTAINER=php-fpm
NGINX_PHP_UPSTREAM_PORT=9000

### APACHE ################################################################################
#############################

APACHE_HOST_HTTP_PORT=80
APACHE_HOST_HTTPS_PORT=443
APACHE_HOST_LOG_PATH=./logs/apache2
APACHE_SITES_PATH=./apache2/sites
APACHE_PHP_UPSTREAM_CONTAINER=php-fpm
APACHE_PHP_UPSTREAM_PORT=9000
APACHE_PHP_UPSTREAM_TIMEOUT=60

### MYSQL ################################################################################
##############################

MYSQL_VERSION=8.0
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

### REDIS ################################################################################
##############################

REDIS_PORT=6379

### Percona ################################################################################
############################

PERCONA_DATABASE=homestead
PERCONA_USER=homestead
PERCONA_PASSWORD=secret
PERCONA_PORT=3306
PERCONA_ROOT_PASSWORD=root
PERCONA_ENTRYPOINT_INITDB=./percona/docker-entrypoint-initdb.d

### MSSQL ################################################################################
##############################

MSSQL_DATABASE=homestead
MSSQL_PASSWORD=yourStrong(!)Password
MSSQL_PORT=1433

### MARIADB ################################################################################
############################

MARIADB_DATABASE=default
MARIADB_USER=default
MARIADB_PASSWORD=secret
MARIADB_PORT=3306
MARIADB_ROOT_PASSWORD=root
MARIADB_ENTRYPOINT_INITDB=./mariadb/docker-entrypoint-initdb.d

### POSTGRES ################################################################################
###########################

POSTGRES_DB=default
POSTGRES_USER=default
POSTGRES_PASSWORD=secret
POSTGRES_PORT=5432

### RABBITMQ ################################################################################
###########################

RABBITMQ_NODE_HOST_PORT=5672
RABBITMQ_MANAGEMENT_HTTP_HOST_PORT=15672
RABBITMQ_MANAGEMENT_HTTPS_HOST_PORT=15671
RABBITMQ_DEFAULT_USER=guest
RABBITMQ_DEFAULT_PASS=guest

### ELASTICSEARCH ################################################################################
######################

ELASTICSEARCH_HOST_HTTP_PORT=9200
ELASTICSEARCH_HOST_TRANSPORT_PORT=9300

### KIBANA ################################################################################
#############################

KIBANA_HTTP_PORT=5601

### MEMCACHED ################################################################################
##########################

MEMCACHED_HOST_PORT=11211

### BEANSTALKD CONSOLE ################################################################################
#################

BEANSTALKD_CONSOLE_BUILD_PATH=./beanstalkd-console
BEANSTALKD_CONSOLE_CONTAINER_NAME=beanstalkd-console
BEANSTALKD_CONSOLE_HOST_PORT=2080

### BEANSTALKD ################################################################################
#########################

BEANSTALKD_HOST_PORT=11300

### SELENIUM ################################################################################
###########################

SELENIUM_PORT=4444

### MINIO ################################################################################
##############################

MINIO_PORT=9000

### ADMINER ################################################################################
############################

ADM_PORT=8080
ADM_INSTALL_MSSQL=false

### PHP MY ADMIN ################################################################################
#######################

# Accepted values: mariadb - mysql

PMA_DB_ENGINE=mysql

# Credentials/Port:

PMA_USER=default
PMA_PASSWORD=secret
PMA_ROOT_PASSWORD=secret
PMA_PORT=8080

### MAILDEV ################################################################################
############################

MAILDEV_HTTP_PORT=1080
MAILDEV_SMTP_PORT=25

### VARNISH ################################################################################
############################

VARNISH_CONFIG=/etc/varnish/default.vcl
VARNISH_PORT=8080
VARNISH_BACKEND_PORT=8888
VARNISHD_PARAMS=-p default_ttl=3600 -p default_grace=3600

### Varnish ################################################################################
############################

# Proxy 1

VARNISH_PROXY1_CACHE_SIZE=128m
VARNISH_PROXY1_BACKEND_HOST=workspace
VARNISH_PROXY1_SERVER=SERVER1

# Proxy 2

VARNISH_PROXY2_CACHE_SIZE=128m
VARNISH_PROXY2_BACKEND_HOST=workspace
VARNISH_PROXY2_SERVER=SERVER2

### HAPROXY ################################################################################
############################

HAPROXY_HOST_HTTP_PORT=8085

### JENKINS ################################################################################
############################

JENKINS_HOST_HTTP_PORT=8090
JENKINS_HOST_SLAVE_AGENT_PORT=50000
JENKINS_HOME=./jenkins/jenkins_home

### BLACKFIRE ################################################################################
##########################

# Create an account on blackfire.io. Don't enable blackfire and xDebug at the same time.
# visit https://blackfire.io/docs/24-days/06-installation#install-probe-debian for more info.

INSTALL_BLACKFIRE=false
BLACKFIRE_CLIENT_ID=<client_id>
BLACKFIRE_CLIENT_TOKEN=<client_token>
BLACKFIRE_SERVER_ID=<server_id>
BLACKFIRE_SERVER_TOKEN=<server_token>

### AEROSPIKE ################################################################################
##########################

AEROSPIKE_SERVICE_PORT=3000
AEROSPIKE_FABRIC_PORT=3001
AEROSPIKE_HEARTBEAT_PORT=3002
AEROSPIKE_INFO_PORT=3003

### RETHINKDB ################################################################################
##########################

RETHINKDB_PORT=8090

### MONGODB ################################################################################
############################

MONGODB_PORT=27017

### CADDY ################################################################################
##############################

CADDY_HOST_HTTP_PORT=80
CADDY_HOST_HTTPS_PORT=443
CADDY_HOST_LOG_PATH=./logs/caddy
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile

### LARAVEL ECHO SERVER ################################################################################
################

LARAVEL_ECHO_SERVER_PORT=6001

### DOCKER-SYNC ################################################################################
################

# osx: 'native_osx' (default)
# windows: 'unison'
# linux: docker-sync not required

DOCKER_SYNC_STRATEGY=native_osx

##### TO BE CONTINUE .................................

# ......... Missing: neo4j mongo rethinkdb redis aerospike pgadmin...
# .........
# .........

############################
# Miscellaneous
############################

# Replace with your Docker Host IP (will be appended to /etc/hosts)

DOCKER_HOST_IP=10.0.75.1


# The Remote Interpreter entry matching name `laradock`

PHP_IDE_CONFIG=serverName=laradock


# Fix for windows users to make sure the application path works.

COMPOSE_CONVERT_WINDOWS_PATHS=1


--------------------
Go to the top of the page
+Quote Post
by_ikar
post 4.12.2017, 19:29:08
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Docker na maku czy windowsie działa w wirtualce, więc masz NFS pomiędzy wirtualką a twoim dyskiem, kto kiedyś w vagrancie robił volumeny to wie że jest to bardzo wolne. Dodatkowo zależy co masz namyśli "lokalna maszyna". Jeżeli mówisz o laptopie, to nie, dedyk będzie znacznie lepszy niż niskonapięciowe CPU.

Nie mniej, bardzo często w takiej konfiguracji mysql czy inne bazy po prostu muszą swoje cache rozruszać. Na start nigdy tam nie ma cache, ono zawsze się tworzy pasywnie. Więc wystarczy że poużywasz i powinno się rozruszać. Nie mniej, nie polecam takich kobył używać produkcyjnie, bo to jest drobny żart taki zlepek.
Go to the top of the page
+Quote Post
Pyton_000
post 4.12.2017, 19:50:35
Post #5





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


@by_ikar w Win 10 od wersji Professional Docker odpala się natywnie już i tak też ma odpalony @markonix
Go to the top of the page
+Quote Post
by_ikar
post 4.12.2017, 21:16:43
Post #6





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Natywnie to działa to tylko na linuxie. Na Windowsie to leci po SMB, z prędkością rzędu 20MB/s i bóg wie jakimi opóźnieniami. Podobnie jest na makach, leci to po jakimś "osxfs" co działa na podobnej zasadzie jak NFS czy SMB, czyli lecą poliki po sieci. Już sam czas dostępu przy języku interpretowany, gdzie każdy jeden plik, z setek istniejących, musi zostać pobrany i zinterpretowany, wystarczy żeby aplikacja muliła jak cholera.


Nie działa to natywnie, wciąż działa to w wirtualnych maszynach, z różnymi systemami plików, których system hosta w ogóle nie rozumie. Natywnie na windowsie może działać kiedy odpalasz kontenery zrobione pod windowsa. Kiedy odpalasz linuxowe kontenery na windowsie, odpala się wirtualka i zaczynają się problemy.

Osobiście staram się jak najmniej rzeczy montować jako wolumen, np zamiast całego katalogu projektu, rezultaty są całkiem zadowalające, aczkolwiek bardzo im daleko do tego jak to działa natywnie na linuksie..

Ten post edytował by_ikar 4.12.2017, 21:18:45
Go to the top of the page
+Quote Post
Pyton_000
post 4.12.2017, 21:32:56
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


No tak, trochę przekoloryzowałem z tym natywnie smile.gif Chodzi o to że nie wymagany już jest virtualBox który zwalniał prze swoje montowania FS
Go to the top of the page
+Quote Post
markonix
post 5.12.2017, 02:24:13
Post #8





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Tak, przez natywność rozumiem Hyper-V, który jest też formą wirtualizacji tyle, że dostępną od razu w Win 10.

Nie laptop, komputer stacjonarny.

Głównie mnie ciekawi ten objaw opóźnienia, który jest proporcjonalny do przerwy, maksymalnie dochodzi do 10 sekund.
Na razie czym idę dalej tym jest gorzej więc wątpię aby to się samo rozwiązało.
Jak nie ma jakichś ciekawych rozwiązań dla Laradock'a to będę próbował jeszcze na próbę spróbować jakiś inny, czysty obraz z samą podstawą bo jestem ciekaw czy to problem z samym Laradockiem, Dockerem na Win czy czymś innym.


--------------------
Go to the top of the page
+Quote Post
batman
post 5.12.2017, 07:27:28
Post #9





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat
Nie sądzę aby to była wina Windowsa zwłaszcza, że ktoś ma podobny problem z jabłku:

To nie jest wina Windowsa, tylko Dockera. Działa on natywnie tylko na Linuksie, pozostałe systemy muszą w jakiś sposób "wirutalizować" środowisko, w którym pracują. Najgorzej jest, gdy korzysta się z volumes. Znalazłem trzy rozwiązania problemu, z których przetestowałem dwa. Oba działają raczej średnio. Aktualnie przymierzam się do skorzystania z docker machine i kontenerów postawionych na virtual boksie.

P.S.
W grudniu wychodzi nowa wersja aplikacji na maca (i prawdopodobnie na windowsa). Może udało im się naprawić problem wydajności.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
markonix
post 5.12.2017, 11:52:43
Post #10





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


A tak odchodząc minimalnie od tematu, jak zaktualizować takiego Laradock'a (i inne analogiczne) gdy on nie jest dodany do composera, tylko jako git submodule.
Czy po prostu ściągnąć zmiany manualnie z repo? Potem co odpalić aby zaktualizować kontenery? Jak tak oglądam pliki to wydaje mi się, że nie powinno nic wylecieć przy takim pullu bo chyba wszystko co istotne trzyma poza katalogiem projektu, ale są też foldery z plikami zmiennymi (chociażby logami) i to wyleci.

Ten post edytował markonix 5.12.2017, 11:54:13


--------------------
Go to the top of the page
+Quote Post
by_ikar
post 5.12.2017, 12:38:16
Post #11





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 4.12.2017, 21:32:56 ) *
No tak, trochę przekoloryzowałem z tym natywnie smile.gif Chodzi o to że nie wymagany już jest virtualBox który zwalniał prze swoje montowania FS


Tak, ale wciąż są dwa różne systemy plików, z dwiema różnymi cechami (uprawnienia, przestrzenie, symlinki, ioevents etc), takie połączenie między dwoma systemami musi zapewne lecieć po jakiejś wewnętrznej sieci (SMB), problemem nie są tyle co duże pliki, co dużo małych plików. Dlatego czasy odczytów są fatalne. I zawsze będą.

Cytat(markonix @ 5.12.2017, 02:24:13 ) *
Tak, przez natywność rozumiem Hyper-V, który jest też formą wirtualizacji tyle, że dostępną od razu w Win 10.

Nie laptop, komputer stacjonarny.

Głównie mnie ciekawi ten objaw opóźnienia, który jest proporcjonalny do przerwy, maksymalnie dochodzi do 10 sekund.
Na razie czym idę dalej tym jest gorzej więc wątpię aby to się samo rozwiązało.
Jak nie ma jakichś ciekawych rozwiązań dla Laradock'a to będę próbował jeszcze na próbę spróbować jakiś inny, czysty obraz z samą podstawą bo jestem ciekaw czy to problem z samym Laradockiem, Dockerem na Win czy czymś innym.


Odpal sobie
Kod
docker volume ls
a następnie sprawdź ile masz volumenów, oraz w jaki sposób one są podmontowane. Dla przykładu, w katalogu projektu będziesz miał najczęściej: katalog ".git" który może być spory, katalog ".idea" jeżeli korzystasz z phpstorma i zapewne temu podobne. Wszystkie te katalogi są ci w ogóle niepotrzebne w samym kontenerze, a ciągłe aktualizacje w tych katalogach po prostu nadużywa i tak już wolnego "połączenia" pomiędzy wirtualką z dockerem a samym windowsem/makiem. A z tego co widzę po tych plikach, to tam nawet baza danych jest zmontowana lokalnie, co daje kolejny ogromny narzut. Użyj jakiegoś innego rozwiązania, gdzie będziesz miał rzeczy które są ci potrzebne i porównaj czy wciąż będzie to chodzić tak gównianie.

Cytat(batman @ 5.12.2017, 07:27:28 ) *
To nie jest wina Windowsa, tylko Dockera. Działa on natywnie tylko na Linuksie, pozostałe systemy muszą w jakiś sposób "wirutalizować" środowisko, w którym pracują. Najgorzej jest, gdy korzysta się z volumes. Znalazłem trzy rozwiązania problemu, z których przetestowałem dwa. Oba działają raczej średnio. Aktualnie przymierzam się do skorzystania z docker machine i kontenerów postawionych na virtual boksie.

P.S.
W grudniu wychodzi nowa wersja aplikacji na maca (i prawdopodobnie na windowsa). Może udało im się naprawić problem wydajności.


To jest wina windowsa, jak i osx'a. Gdyby te systemy w jakiś łatwiejszy sposób umożliwiały czy to wirtualizowanie czy konteneryzowanie innych systemów, o obsłudze innych niż "słuszne" NTFS systemów plików nie wspominając (oczywiście w przypadku windowsa), to by się to wszystko lepiej integrowało. A tak z racji sporych różnic pomiędzy systemami, powstała proteza, żeby użytkownicy windowsa czy osx'a nie byli gorsi i mieli swojego "natywnego" dockera, bo wiadomo, teraz kontenery są hiper popularne. Na codzień pracuje na osx'ie, wcześniej pracowałem głównie na ubuntu i przejście było najbardziej bolesne, kiedy się okazało jakim kastratem jest osx pod względem narzędzi developerskich na których dotychczas pracowałem. Nie zrozumcie mnie źle, windows, mak czy linuks to są dobre systemy i każde z nich ma swoje zalety i wady. Jako że dla mnie istotny jest development, to z automatu na samym końcu ląduje windows. Maka mocno ratuje społeczność i uniksowa kompatybilność. Gdyby stworzyli coś zupełnie swojego, zapewne byłoby tak samo jak z windowsem..


Aby podsumować ten wywód, na windowsie czy maku istotne jest to co montujecie. Jak twój projekt jest w katalogu `~/projects/my-project` a w katalogu projektu istotne są tylko katalogi `~/projects/my-project/vendor` i `~/projects/my-project/src`; to montujcie tylko te dwa katalogi, zamiast całego katalogu z projektem. Nie montujcie plików z bazy danych - użyjcie named volumes (nie przepadną wam dane, ale nie będziecie tego montować lokalnie). Jak pracujecie na wersjach developerskich aplikacji, mimo wszystko włączajcie cache i inne. Jeżeli w projekcie macie pliki które mają różną wielkość znaków, pilnujcie żeby odwołania do tych plików były prawidłowe, z racji tego że windows czy mak ignorują wielkość znaków (na maku można to wyłączyć) to będzie wam szukało plików w kilku wariantach, co będzie minimalnie wolniejsze.

Jeżeli mimo tego aplikacja działa wolno, a dockera używacie bo to jest "fajne", to zastanówcie się nad po prostu instalacją projektu lokalnie. U mnie używam kontenerów w developmencie, stagingu oraz produkcji. Nie mniej, debugowanie kodu lokalnie, w kontenerach do których nie ma się łatwego dostępu (w przypadku maków ułomna jest też sieć, nie istnieje interfejs docker0 dzięki któremu można dostać się do kontenera po jego IP, trzeba wszystko bindować lokalnie i dostawać się po localhost..), staram się aby tylko bazy danych działały w kontenerach, a samą aplikacje odpalam lokalnie i łącze się do tych baz danych. Nie ma innego wyjścia, trzeba sobie jakoś radzić..
Go to the top of the page
+Quote Post
markonix
post 6.12.2017, 14:20:27
Post #12





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Tylko cały czas ciekawi mnie objaw tego opóźnienia, aniżeli sama wydajność Docker'a bo ta przyznaje, póki co jest 1/3 wolniej niż serwer ale to ciągle mniej niż 1 sekunda i bym to tymczasowo przebolał.
Natomiast ciekawi mnie ten objaw przerwy.
Zaraz po włączeniu Dockera i po długiej przerwie czas uruchomienia: 2x4 sekundy.
Dłuższa przerwa: 2x3 sekundy.
Krótka przerwa: Mniej niż 1 sekunda (normalnie).
Wyraźnie coś ładuje, jakiś cache traci się i z tego co pamiętam na Vagrant też tak miałem że pierwsze odpalenie było dłuższe ale potem już było cały czas ok.


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.12.2017, 14:29:53
Post #13





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




A moze poprostu twoja aplikacja na docker ma inna konfiguracje niz na serwer a co za tym idzie inaczej sie zachowuje?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
markonix
post 6.12.2017, 14:46:08
Post #14





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Hmm, jaką konfigurację masz na myśli? Pliki env praktycznie są zbieżne, sama konfiguracja serwera jak najbardziej może nie być ale nie wiem od czego zacząć przy "wyrównywaniu" środowisk.
Jak bym miał coś szukać to z jakimś cache, tylko pytanie czemu lokalnie tego cache nie trzyma albo trzyma ale tylko minutę + są jakby 2 zestawy bo aplikacja ładuje się w 1 sekundę, 6 sekund (teraz np. pisząc tego posta) i te najdłuższe 8 sekund.


--------------------
Go to the top of the page
+Quote Post
nospor
post 6.12.2017, 15:06:16
Post #15





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




zazwyczaj, konfiguracja lokalna aplikacji jest inna niz tej na serwerze.
Przykladowo w symfony lokalnie nie musisz recznie czyscic cache, na serwerze juz musisz. To tylko jeden z przykladow.

A moze to faktycznie ci muli z jakiegos powodu jakis kontener. Z jakiego to wiadomo - windows wink.gif
Juz to mowiono tu wczesniej, ale moze zamiast bawic sie w kobyle laradoc zrob wlasnego docker-compose


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
markonix
post 6.12.2017, 15:51:10
Post #16





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Ktoś poleci jakiś sprawdzony obraz? Nginx, php 7.1 (+ rozszerzenia), mariadb?


--------------------
Go to the top of the page
+Quote Post
by_ikar
post 7.12.2017, 08:17:03
Post #17





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Użyj oficjalnych obrazów i posklejaj to sobie w docker-compose. Jest to trochę dodatkowej wiedzy, ale dzięki temu będziesz wiedział jak działa całe twoje środowisko, a nie musiał się zastanawiać, dlaczego coś gdzieś ci muli. Polecam korzystać z obrazów gdzie bazą jest alpine (często w tagach jest np nginx:alpine), głównie ze względu na ich minimalizm oraz wydajność.
Go to the top of the page
+Quote Post
Pilsener
post 7.12.2017, 09:52:31
Post #18





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Nawet jak lokalnie uda się w 100% zasymulować środowisko to i tak jest jeszcze problem danych, różnych API etc. Dlatego ja preferuję rozwiązanie, które polega na równoległym postawieniu aplikacji w trybach dev, staging oraz production. Kod napisany lokalnie jest sprawdzany na dev, potem staging (produkcyjne dane) i w końcu trafia na produkcję. Przy debugowaniu kolejność rzecz jasna odwrotna.
Wkurza mnie, kiedy bug na 15 minut zajmuje 15 godzin bo muszę ogarnąć środowisko, pobrać dane, wstawić zaślepki dla jednych API, zasymulować działanie innych etc. A prawdziwa tragedia, gdy masz architekturę rozproszoną i jeden serwis jest zależny od drugiego przez jakiegoś rabbita etc.
Dlatego nie ma sensu się spinać by lokalnie mieć identycznie jak na serwerze - jak Ci docker zamula to go po prostu nie używaj.
Go to the top of the page
+Quote Post
memory
post 7.12.2017, 13:33:24
Post #19





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

Ostrzeżenie: (0%)
-----


http://dockerfile.readthedocs.io/en/latest...ages/index.html
Go to the top of the page
+Quote Post
batman
post 10.12.2017, 02:20:11
Post #20





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(by_ikar @ 5.12.2017, 12:38:16 ) *
To jest wina windowsa, jak i osx'a. Gdyby te systemy w jakiś łatwiejszy sposób umożliwiały czy to wirtualizowanie czy konteneryzowanie innych systemów, o obsłudze innych niż "słuszne" NTFS systemów plików nie wspominając (oczywiście w przypadku windowsa), to by się to wszystko lepiej integrowało.

Równie dobrze możesz napisać, że to wina Windowsa, że nie można na nim odpalić aplikacji z iPhone'a. Docker po prostu sobie nie radzi na Windowsie i na MacOS. Ale nie o tym chciałem pisać. Szukając rozwiązania problemu natknąłem się na takie coś: https://docs.docker.com/docker-for-mac/osxfs-caching/ (a już chciałem odpalać docker-machine). Nadal nie jest to idealne rozwiązanie i czasami projekt potrafi zamulić, ale poprawa jest wyraźnie zauważalna.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 20:22