Minikube의 docker-env 명령 취소

Kubernetes|2018. 5. 4. 19:30

minikube docker-env 명령을 실행하면, minikube VM의 도커(docker) 데몬과 호스트의 도커 클라이언트를 연결하는 명령을 알려준다.

이를 이용한 후에 되돌리려면 아래 명령 실행 후에 출력되는 내용을 참고하면 된다.

docker-machine env

다음은 Windows에서의 실행 결과다.

C:\\Users\\daniel>docker-machine env
SET DOCKER\_TLS\_VERIFY=1
SET DOCKER\_HOST=tcp://192.168.99.101:2376
SET DOCKER\_CERT\_PATH=C:\\Users\\daniel\\.docker\\machine\\machines\\default
SET DOCKER\_MACHINE\_NAME=default
SET COMPOSE\_CONVERT\_WINDOWS\_PATHS=true
REM Run this command to configure your shell:
REM     @FOR /f "tokens=\*" %i IN ('docker-machine env') DO @%i

마지막 줄의 @FOR /f "tokens=\*" %i IN ('docker-machine env -u') DO @%i을 실행하면, 다시 Docker Toolbox의 도커 데몬을 사용하게 된다.

EOF

태그 : docker, kubernetes

댓글()

Liquibase - 기존 DB를 이용해서 초기(initial) ChangeSet 만들기

DevOps|2018. 4. 5. 18:12

Generating Change Logs

  • Example
liquibase --driver=oracle.jdbc.OracleDriver \
      --classpath=\path\to\classes:jdbcdriver.jar \
      --changeLogFile=com/example/db.changelog.xml \
      --url="jdbc:oracle:thin:@localhost:1521:XE" \
      --username=scott \
      --password=tiger \
      generateChangeLog
  • default options
liquibase --driver=org.postgresql.Driver --classpath=C:/Users/daniel/.IntelliJIdea2017.3/config/jdbc-drivers/PostgreSQL/42.2.1/postgresql-42.2.1.jar --changeLogFile=db.changelog.xml --url="jdbc:postgresql://localhost:5432/postgres" --username=postgres --password=postgres generateChangeLog
liquibase --driver=org.postgresql.Driver --classpath=C:/Users/daniel/.IntelliJIdea2017.3/config/jdbc-drivers/PostgreSQL/42.2.1/postgresql-42.2.1.jar --changeLogFile=db.data.changelog.xml --url="jdbc:postgresql://localhost:5432/postgres" --username=postgres --password=postgres --diffTypes="data" generateChangeLog
  • all(default + include data)
liquibase --driver=org.postgresql.Driver --classpath=C:/Users/daniel/.IntelliJIdea2017.3/config/jdbc-drivers/PostgreSQL/42.2.1/postgresql-42.2.1.jar --changeLogFile=db.all.changelog.xml --url="jdbc:postgresql://localhost:5432/postgres" --username=postgres --password=postgres --diffTypes="tables, views, columns, indexes, foreignkeys, primarykeys, uniqueconstraints, data" generateChangeLog
  • 데이터베이스 업데이트를 위해 Liquibase가 사용하는 SQL 파일 생성
liquibase --driver=org.postgresql.Driver --classpath=C:/Users/daniel/.IntelliJIdea2017.3/config/jdbc-drivers/PostgreSQL/42.2.1/postgresql-42.2.1.jar --changeLogFile=db.all.changelog.xml --url="jdbc:postgresql://localhost:5432/postgres" --username=postgres --password=postgres --diffTypes="tables, views, columns, indexes, foreignkeys, primarykeys, uniqueconstraints, data" updateSQL  > updateSQL.sql
  • 생성된 ChangeSet은 여러 개로 나뉘어져 있는데, 하나의 ChangeSet으로 병합하는게 좋다.
    • 변경 로그를 하나만 남기기 위해서.
    • 가독성



EOF

태그 : liquibase

댓글()

AXBoot를 IntelliJ IDEA에서 처음 사용할 때 유의할 점

Java|2018. 3. 24. 15:15

AXBoot Initializer로 생성한 프로젝트를 IntelliJ IDEA에서 열고 실행하려고 하면, QMenu, QCommonCode 등의 JPA 도메인 클래스 관련 오류가 발생하면서 빌드가 실패한다.  

이럴 때는 "View > Tools Windows > Maven Projects" 메뉴를 이용해서 Maven 패널을 열고, Lifecycle 하위의 clean, package 골을 차례로 실행한다.  


이 오류는 Querydsl 관련 클래스가 없어서 발생하는데, 위의 과정을 통해서 생성하는 것이다.


EOF


태그 : axboot, idea, Spring

댓글()

도커(Docker)의 쿠버네티스(Kubernetes) 지원

Kubernetes|2018. 3. 23. 19:36

아직(2018년 3월 현재) 베타 버전이지만 도커의 쿠버네티스 지원이 시작됐다.  

도커 홈페이지에 커다란 베너로 이를 알리고 있으며, 베타 프로그램에 참여하면 새 소식을 알려주는 것 같다.


Docker for Mac에 Kubernetes Tab이 추가된 것 말고는 뒤져봐도 아직은 별다른 내용은 없다.


최근 쿠버네티스를 "the Linux of the cloud"라고 부르는 것을 종종 듣게되는데, 도커가 Docker Swarm과 Kubernetes를 같은 수준으로 지원하려는 것을 보면 가능성이 점점 커지는 것 같다.


EOF

태그 : docker, kubernetes

댓글()

AXBoot-WildFly 9을 사용할 때의 JWTSessionHandler 문제

Java|2018. 1. 9. 15:05

com.chequer.axboot.admin.utils.JWTSessionHandler는 javax.xml.bind.DatatypeConverter 클래스를 이용하여 BASE64 인코딩/디코딩을 수행합니다.
그런데 WildFly 9 버전의 경우에는 문제가 있습니다. WildFly 9은 JDK의 DatatypeConverter를 사용하는게 아니라 별도의 내장된 버전을 사용하기 때문입니다.

좀 더 정확하게는 wildfly-9.0.2.Final/modules/system/layers/base/javax/xml/bind/api/main/jboss-jaxb-api_2.2_spec-1.0.4.Final.jar 파일에 포함된 것을 사용합니다.

이 버전은 URL-safe 하지 않은 인코딩을 수행하기 때문에 쿠키를 이용한 로그인이 불가능한 심각한 문제가 발생합니다.

아래와 같이 Apache Commons Codec 프로젝트의 Base64 클래스를 사용하도록 수정하면 문제가 해결됩니다.

    import org.apache.commons.codec.binary.Base64;

    private String toBase64(byte[] content) {
        return Base64.encodeBase64URLSafeString(content);
    }

    private byte[] fromBase64(String content) {
        return Base64.decodeBase64(content);
    }

DatatypeConverter 를 써야하는 특별한 이유가 없다면 원본 소스도 이렇게 변경하는게 좋을 것 같습니다. 어차피 Commons Codec 프로젝트에는 이미 디펜던시가 있으니까요.


EOF


태그 : axboot, wildfly

댓글()