Yleiset ongelmatilanteet asennuksessa ja ylläpidossa
1. TIMiä asentaessa ./tim setup jumittaa (Windows)
Jos komennon ./tim setup
jälkeen asennus jää jumiin kohdan
[INFO] Installing Python development dependencies
jälkeen, kyseessä on todennäköisesti puuttuvat oikeudet tehdä tarvittavia muutoksia. Tällöin Git Bash (tai muu komentotulkki, jota käytät asennuksessa) pitää ajaa järjestelmänvalvojan oikeuksilla:
- Avaa Windowsin hakuvalikko painamalla Win+S
- Kirjoita hakuun git bash (tai komentotulkkisi) ja valitse oikealta 'Run as administrator'/'Aja järjestelmänvalvojana'
- Suorita
./tim setup --force
TIMin juurihakemistosta
Asennuksen pitäisi mennä nyt normaalisti läpi.
2. Windows: WSL lakkaa vastaamasta
WSL lakkasi vastaamasta ja silloin Docker ei käynnistynyt. Auttoi seuraavat:
wsl --update
wsl --shutdown
wsl
Toisessa tapauksessa Docker näytti ulkoisesti olevan käynnissä, mutta
$ ./tim npmi
error cb() never called!
error This is an error with npm itself. Please report this error at:
error https://npm.community/
jokin WSL:n toiminnassa esti Dockeria käynnistymästä.
$ ./tim up
error during connect: This error may indicate that the docker daemon is not running.
Tilanne korjaantui WSL:n päivityksellä ja Dockerin uudelleen käynnistyksellä
$ wsl --update
$ wsl --shutdown
$ docker restart
3. TIMiin ei saa yhteyttä selaimessa
Jos et saa yhteyttä TIMiin selaimesta, niin todennäköisesti jokin kontti ei ole lähtenyt käyntiin.
Kontin ajosta saa tietoa kirjoittamalla:
./tim dc logs <kontin nimi docker-compose.yml:ssä>
Esim:
./tim dc logs --tail=20 tim
ja siellä voi olla vaikkapa:
2021-12-16 09:28:04,309 ERROR: Your database is not up to date. To upgrade, run: ./r flask db upgrade
jolloin pitää toimia ohjeiden mukaan.
3.1 Mahdollisia syitä, miksi TIM-kontti ei lähde käyntiin
Tietokannan rakenne ei ole ajan tasalla. Tietokannan voi päivittää komennolla
./tim run flask db upgrade
Jos tämän tekee tuotannossa, turvallisempaa saattaa olla ajaa
./tim update db
joka samalla sammuttaa muut kontit päivityksen ajaksi ja näyttää peruskäyttäjille "TIM is being updated" -viestin.
Tietokanta on jollain tavalla rikki. Silloin sen voi alustaa uudelleen:
./tim dc down docker volume rm tim_data11 <poista kansio timApp/tim_files> ./tim up
4. Selaimessa näkyy 502 Bad Gateway
- Vaihtoehtoja:
Tim-kontti ei ole käynnissä, katso
docker ps
Itse TIM-palvelin ei ole käynnissä; katso onko se pysähtynyt
Esim. tietokannan olemassaolon voi tarkistaa:
./tim pg backends
Tietokanta syntyy automaattisesti TIMin käynnistyessä, jos sitä ei ole.
5. Windows: EPERM-virhe ajettaessa ./tim npmi
Tämän komennon aikana saattaa Windowsilla tulla EPERM-virhe. Laita siinä tapauksessa antivirusohjelma pois päältä väliaikaisesti, poista hakemisto node_modules
(jos se ehti syntyä) ja yritä uudestaan.
6. Windows: TIMin käyttämät portit ovat varattu
Ainakin Vesan koneessa on käynyt niin, että Windowsin käynnistyessä joitakin TIMin käyttämiä portteja on kieltolistalla. Peruskäytössä TIM käyttää vain portit 80 (HTTP) ja 443 (HTTPS), mutta nämä portit voi ohjata uudelleen muuttamalla caddy.port_mapping
-konfiguraatiota tim.conf
-tiedostossa.
Listan näkee Windowsissa komennolla:
netsh interface ipv4 show excludedportrange protocol=tcp
Jos listalla on TIMin käyttämiä portteja, niin ne saa vapaaksi ainakin tilapäisesti komennolla
net stop winnat
Tämä pitää kuitenkin antaa ennen docker-konttien käynnistymistä, eli jos kontit ovat jo käynnistyneet, niin sitten
./tim dc down
./tim up
Komennolla
netstat -a -b
näkee käytössä olevat portit (eri asia kuin mitä on kielletty).
Windowsilla voi käytössä olevien porttien katsomiseen käyttää graafista CurrPorts-työkalua.
Voit kokeilla myös vapauttaa varattuja portteja (Command Promt admin oikeuksilla):
net stop winnat
netsh int ipv4 set dynamic tcp start=49152 num=16384
netsh int ipv6 set dynamic tcp start=49152 num=16384
net start winnat
Jos konttien käynnistäminen keskeytyy alla olevaan virheilmoitukseen
Error response from daemon: Ports are not available: listen tcp 0.0.0.0:80: bind:
An attempt was made to access a socket in a way forbidden by its access permissions.
Täytyy vapauttaa valmiiksi käytössä oleva portti
$ netstat -aon | grep :80
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP [::]:80 [::]:0 LISTENING 4
$ net stop W3SVC
The World Wide Web Publishing Service service is stopping.
The World Wide Web Publishing Service service was stopped successfully.
$ netstat -aon | grep :80
<tyhjä>
Kokeillaan uudestaan toimiiko
$ ./tim dc down
$ ./tim up
7. WSL: Lähiverkkoon ei saada yhteyttä
Ongelman luonne: jos yrittää ottaa yhteyttä esimerkiksi lähiverkossa oleviin laitteisiin, WSL ilmoittaa virheen:
$ ping 192.168.59.1
ping: connect: Network is unreachable
Vastaavasti apt update
ja docker-compose pull
eivät vältämättä toimi samasta syystä.
Ongelmana saattaa olla se, että Windowsin %temp%
-kansio on pakattu. Lisätietoja tässä vastauksessa:
https://github.com/microsoft/WSL/issues/5437#issuecomment-786149638
Korjaus: Tarkista, että %temp%
-kansio ei ole pakattu. Jos se on, pura kansio ja käynnistä tietokone uudelleen.
Jos tämä ei ole mahdollista (esimerkiksi oikeudet eivät riitä), luo %userprofile%
-kansioon .wslconfig
-tiedosto ja laita sen sisällöksi
[wsl2]
swap=0
ja käynnistä tietokone uudelleen.
8. WSL 2: apt update
jää jumiin
Ongelman luonne: kun ajetaan apt update
, se jää pitkäksi ajaksi ottamaan yhteyttä palvelimeen, minkä jälkeen se epäonnistuu.
Lisäksi ping
/host
-komennot eivät toimi domaineihin. Esimerkiksi tulee virhe mallia
$ host google.com
;; connection timed out; no servers could be reached
Ongelma johtuu siitä, että WSL ei aina osaa tunnistaa DNS-palvelimen osoitteen oikein. Katso lisätietoja kortista:
https://github.com/microsoft/WSL/issues/4285
Korjaus: Seuraa seuraavat ohjeet:
https://github.com/microsoft/WSL/issues/4285#issuecomment-522201021
9. Docker ei lähde käyntiin
Tulee esimerkiksi virhe:
Docker failed to initialize
kun yrittää Dockeria käynnistää käsin. Käsin siksi, että se ei ole lähtenyt itsekseen käyntiin.
Itse sain tuon korjattua kun
~/AppData/Roaming/Docker
hakemistossa- varakopio
settings.json
tiedostosta ja sitten sen tuhoaminen - tuhotaan tiedosto
locked-directories
- varakopio
- Sammutetaan kaikki Docker-instanssit (ehkä jopa uudelleen käynnistys)
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.