Coder Social home page Coder Social logo

boilerplates's Introduction

Ready Docker & k8s

# setup qemu socket_vvmnet (for service tunnel)
brew install socket_vmnet
brew tap homebrew/services
HOMEBREW=$(which brew) && sudo ${HOMEBREW} services start socket_vmnet

# install on mac
brew install docker docker-compose docker-credential-helper minikube

# minikube configurations
minikube config set cpus 2
minikube config set memory 2048
minikube config set disk-size 20gb
minikube start --driver qemu --network socket_vmnet

# set docker daemon
eval $(minikube docker-env)

# install vscode plugins : docker, kubernetes, bridge to kubernetes

Spring Boot

  1. Project spring initializr
  2. Docker
    FROM openjdk:8
    VOLUME /tmp
    COPY build/libs/*-SNAPSHOT.jar app.jar
    ENTRYPOINT ["java","-jar","/app.jar"]
    # build image
    ./gradlew build
    docker build -t positoy/boot .
    # create container with default "bridge" network with private IPAddress
    docker run --name boot -d --rm positoy/boot
    # only containers in the same host can access.
    docker run --rm curlimages/curl -L -v http://`docker inspect -f "{{ .NetworkSettings.IPAddress }}" boot`:8080
  3. Kubernetes
    # push the docker image to registry
    docker push positoy/boot
    # create deployment, port is just meta info
    kubectl create deployment boot --image=positoy/boot --port=8080
    # create service, deployment port info is helpful here.
    # kubectl create service nodeport boot --tcp=8080:8080
    kubectl expose deployment boot --type=NodePort --port=8080
    # open browser for the service
    minikube service boot
    # service update if needed
    kubectl rollout restart deployment/boot

Next.js

  1. Project
    npx create-next-app@latest --template typescript next
  2. Docker
    FROM node:18.17.1-alpine
    VOLUME /tmp
    COPY next /tmp/next
    WORKDIR /tmp/next
    ENTRYPOINT ["npm","run","start"]
    cd next
    npm run build
    cd ..
    docker build -t positoy/nextjs .
    docker run --name nextjs -d --rm positoy/nextjs
  3. Kubernetes
    docker push positoy/nextjs
    kubectl create deployment nextjs --image=positoy/nextjs --port=3000
    kubectl expose deployment nextjs --type=NodePort --port=3000
    minikube service nextjs

Node.js Express

  1. Project

    mkdir express
    cd express
    npm init -y
    npm add express typescript @types/express @types/node
    npx tsc --init
    # tsconfig.js
    {
        ...
        "compilerOptions": {
            "outDir": "dist"
        }
        ...
    }
    # package.json
    {
        ...
        "scripts": {
            "build": "npx tsc",
            "start": "node dist/server.js"
        }
        ...
    }
  2. Docker

    FROM node:18.17.1-alpine
    VOLUME /tmp
    COPY express /tmp/express
    WORKDIR /tmp/express
    ENTRYPOINT ["npm","run","start"]
    cd express
    npm run build
    cd ..
    docker build -t positoy/express .
    docker run --name express -d --rm positoy/express
  3. Kubernetes

    docker push positoy/exprss
    kubectl create deployment express --image=positoy/express --port=3000
    kubectl expose deployment express --type=NodePort --port=3000
    minikube service express

MySQL

# mysql-server
docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7
docker exec -it mysql bash
mysql -uroot -p
-- create 'user' user
create user 'user' identified by 'password';
# mysql-client
docker run -it --rm --name mysql-client mysql:5.7 mysql -h`docker inspect -f "{{ .NetworkSettings.IPAddress }}" mysql` -uuser -p

PostgresSQL

  1. Docker
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
docker run -it --rm postgres psql -h `docker inspect -f "{{ .NetworkSettings.IPAddress }}" some-postgres` -U postgres

Redis

  1. Docker
docker run --name some-redis -d redis
docker run -it  --rm redis  redis-cli -h  `docker inspect -f "{{ .NetworkSettings.IPAddress }}" some-redis`

boilerplates's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.