# Collapick best practices
## Docker
### kuinka konttiin sisään
```
// listaa kontit
docker ps
// aja sovellus kontin sisällä
docker exec -it <container name> /bin/bash
// tai /bin/sh jos bashia ei ole
```
### Sammuttaa kontit (tämä vaihe ei ole pakollinen, sillä up komento suorittaa uudelleen käynnistämisen):
```
docker-compose -f docker-compose-production.yml stop
```
### Käynnistä kontit uudelleen: (up komento suorittaa tarpeelliset uudelleen käynnistämisen)
```
docker-compose -f docker-compose-production.yml up -d
```
https://gist.github.com/nshtg/24c22f8878456e00c1f07f762038f58c
### Backupin luonti cron kontin kautta:
```
docker exec -it CRON_CONTAINER_ID /bin/sh
```
Aja komento:
```
sh etc/periodic/daily/backup
```
### Tai mySQL kontin kautta
```
docker exec MYSQL_CONTAINER_ID /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql
```
### Restore
```
cat backup.sql | docker exec -i MYSQL_CONTAINER_ID /usr/bin/mysql -u root --password=root DATABASE
```
```
gunzip < backup.sql.gz | docker exec -i MSQL_CONTAINER /usr/bin/mysql -u root --password=root DATABASE
```
### Listaa pyörivät kontit
```
docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Image}}\t{{.Status}}" | (read -r; printf "%s\n" "$REPLY"; sort -k 2 )
```
## React
// TODO
## Javascript
// TODO
## Visual Studio Code
// TODO
## NPM
### Collapick private repo
jos joku käyttää projekteissaa meidän private repon npm paketteja, ja sitten tarvis saada toimimaan npm install ilman tunnusten asettamista tai vastaavaa; voi käyttää .npmrc tiedostoa ja sillä tokenin asettamisen, millä on oikeus ladata tarvittavat private repon npm paketit.
Lisää package.json rinnalle .npmrc tiedosto, seuraavalla sisällöllä:
```
//registry.npmjs.org/:_authToken=6daef931-f3ee-4d65-9367-4c3bc57e0184
```
https://docs.npmjs.com/using-private-packages-in-a-ci-cd-workflow
### NPM:n komennoista, publish etc..
TODO
## etc