intra-mart를 시작하는 Docker 컨테이너를 만듭니다.알피니로.

13634 단어 Dockerintra-martresin

개요


intra-mart를 시작하는 Docker 컨테이너 만들기 inspire the next에 의해 무사야를 만들어 보았다.
Docker 컨테이너에 구축intra-mart된 환경입니다.
경량과 소문의 알피니.ubuntu라면, 지금은 appt-get이resin에 들어갈 수 있는 시대입니다.
이번 목표는 다음과 같은 느낌.
- "/imart/login"에서 만든 임차인 관리자가 로그인할 수 있는지 확인합니다.
- imart.war는 밖에서 지낼 수 있어요.
- 데이터베이스는 별도의 컨테이너를 사용합니다.
- 웹 서버(예: Apache)를 준비하지 않습니다.
-IMBox 및 IM-ContentSearch는 들어갈 수 없습니다.(Cassandra와 Solr가 필요하기 때문)
이것은 모든 시도된 프로그램의 버전입니다.
application
version
설명
Resin Pro
4.0.48
본가에서 나눠준 물건을 이용하다.
OpenJDK
1.8.0_92
apk에 설치한 것을 사용합니다.
intra-mart
8.0.13(Maxima)
2016 Spring을 활용합니다.
PostgreSQL
9.5.3
Docker Hub에서 배포한 latest를 사용합니다.
주1시스템 요건은 100% 미만이지만 제한이 없습니다.과감한 관계가 중요하다.
주2본가의 리틴프로에는 리엔스가 포함되지 않기 때문에 리엔스에 직접 가입해야 합니다.안 들어가도 삼십 일 정도 걸을 것 같다
주3은 Oracle이 아닌 intra-mart에서 이동하는 프로그램이 없습니다.

미리 준비한 물건

  • imart.war
  • postgres의 jdbc 드라이브(postgresq1-9.4.1208.jar)
  • intra-mart Accel 시리즈 TRY Edition 다운로드에서 IM-Jugling 도구 다운로드
    War 파일을 만들다.
    단계의 상세한 내용은 지도원에 기재되어 있으니 참고하십시오.

    resin-web.xml 정보


    p r e p aredStation Cachee Queries 값을 0 또는 8 이하로 설정하지 않으면 임차인을 설치할 때 오류가 발생하여 사람을 울리게 할 수 있습니다.
    일가의 수첩에서 20을 지정하는 예를 제시했지만 이것이라면 오류가 된다.
    참조intra-mart의 세입자 환경 설정 시 자바.sql.SQLException 발생 시 대책
    
    <database jndi-name="jdbc/default">
            <driver>
                <type>org.postgresql.Driver</type>
                <url>jdbc:postgresql://postgres:5432/iap_db</url>
                <user>imart</user>
                <password>imart</password>
                <init-param>
                    <param-name>preparedStatementCacheQueries</param-name>
                    <param-value>8</param-value>
                </init-param>
            </driver>
            <max-connections>20</max-connections>
            <prepared-statement-cache-size>8</prepared-statement-cache-size>
        </database>
    

    Docker 구문을 위한 파일 만들기


    Dockerfile


    다음은 Docker file입니다.
    자바만 있으면 된다는 천진난만한 생각은 리슨의 make 단계에서 산산조각이 났다.
    그리고make 때도 h가 필요해요.따라서resin의make 후 필요 없는 시기에 apkdel로 제거합니다.(살을 빼기 위해)
    사이트 축소판 그림에서 원하는 파일과 해당 파일이 포함된 패키지를 찾습니다.
    
    FROM alpine:3.4
    
    ENV RESIN_VERSION 4.0.48
    ENV RESIN_HOME /opt/resin-pro-${RESIN_VERSION}
    ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk
    
    RUN apk add --virtual=build-dependencies --no-cache g++ libstdc++ linux-headers make wget ca-certificates && \
        apk add --no-cache openjdk8 && \
        ALPINE_GLIBC_BASE_URL="https://github.com/sgerrand/alpine-pkg-glibc/releases/download" && \
        ALPINE_GLIBC_PACKAGE_VERSION="2.23-r3" && \
        ALPINE_GLIBC_BASE_PACKAGE_FILENAME="glibc-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \
        ALPINE_GLIBC_BIN_PACKAGE_FILENAME="glibc-bin-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \
        ALPINE_GLIBC_I18N_PACKAGE_FILENAME="glibc-i18n-$ALPINE_GLIBC_PACKAGE_VERSION.apk" && \
        wget \
            "https://raw.githubusercontent.com/andyshinn/alpine-pkg-glibc/master/sgerrand.rsa.pub" \
            -O "/etc/apk/keys/sgerrand.rsa.pub" && \
        wget \
            "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
            "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
            "$ALPINE_GLIBC_BASE_URL/$ALPINE_GLIBC_PACKAGE_VERSION/$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \
        apk add --no-cache \
            "$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
            "$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
            "$ALPINE_GLIBC_I18N_PACKAGE_FILENAME" && \
        \
        rm "/etc/apk/keys/sgerrand.rsa.pub" && \
        /usr/glibc-compat/bin/localedef --force --inputfile POSIX --charmap UTF-8 C.UTF-8 || true && \
        echo "export LANG=C.UTF-8" > /etc/profile.d/locale.sh && \
        \
        apk del glibc-i18n && \
        \
        rm "/root/.wget-hsts" && \
        rm \
            "$ALPINE_GLIBC_BASE_PACKAGE_FILENAME" \
            "$ALPINE_GLIBC_BIN_PACKAGE_FILENAME" \
            "$ALPINE_GLIBC_I18N_PACKAGE_FILENAME"
    
    ENV LANG=C.UTF-8
    
    RUN wget http://caucho.com/download/resin-pro-${RESIN_VERSION}.tar.gz -P /usr/local && \
        cd /usr/local && \
        tar xvzf resin-pro-${RESIN_VERSION}.tar.gz && \
        rm -f resin-pro-${RESIN_VERSION}.tar.gz && \
        cd resin-pro-${RESIN_VERSION} && \
        ./configure --prefix=/opt/resin-pro-${RESIN_VERSION} --enable-64bit && \
        make && \
        make install && \
        rm -rf /usr/local/resin-pro-4.0.48 && \
        ln -s /opt/resin-pro-${RESIN_VERSION} /opt/resin && \
        apk del build-dependencies 
    
    
    EXPOSE 8080
    
    ENTRYPOINT ["/opt/resin/bin/resinctl"," -server", "app-0", " start-with-foreground"]
    
    
    
    실은 리빈.properties 등을 적당히 편집해야 하지만 동작 확인 수준이 아니어도 방법이 있다.
    나는 과감하게 앞으로 갈 것이다.

    Docker 이미지 만들기


    Docker를 사용하여 이미지를 구성하고 작성합니다.
    docker build -t imart-base:4.0.48 .
    

    PostgreSQL 준비


    이미지 가져오기 및 시작

    docker run --name postgres -d -e PGPASSWORD=postgres -e POSTGRES_USER=postgres -p 5432:5432 postgres:latest
    
    현재 latest는 9.5.3이다.

    연결 intra-mart 만들기


    데이터베이스 및 로그인 볼륨 만들기를 참조하여 롤러를 만들다.
    이번에도 포스트포스트 SQL이 컨테이너여서 이렇게 해봤어요.
    우선 용기에 연결합니다.
    docker exec -it postgres bash
    
    PostgreSQL을 연결합니다.
    psql -U postgres
    
    역할 및 데이터베이스를 만듭니다.
    postgres=# CREATE ROLE imart WITH LOGIN PASSWORD 'imart';
    CREATE ROLE
    
    postgres=# CREATE DATABASE iap_db OWNER imart ENCODING 'utf8';   
    CREATE DATABASE
    

    가동 빈 컨테이너


    우선 미리 준비한 서류가 다음과 같다고 가정하자.
  • /home/intramart/war/*.War(IM-Jugling으로 만든 War 파일)
  • /home/intramart/lib/*.jar(JDBC 드라이브)
  • 이 마운트를 당신에게 전달합니다.
    PostgreSQL용 - 링크
    docker run -it -d --name intra -p 8080:8080 --link postgres:postgres -v /home/intramart/war/:/opt/resin/webapps -v /home/intramart/lib/:/opt/resin/webapp-jars imart-base:4.0.48
    잠시 후 Warr 파일을 펼치고resin을 시작합니다.

    세입자 설정 및 로그인 확인


    아래를 방문하면 초기 설정 화면이 나온다.안내자를 따라 전진하다.
    http://<Dockerのホスト>:8080/imart/system/login
    그런 다음 시스템 관리자가 로그인하면 다음 화면이 나타납니다.

    이하를 방문해 세입자 관리자라도 로그인할 수 있는지 확인한다.
    http://<Dockerのホスト>:8080/imart/login
    


    Resin이 포함된 컨테이너의 이미지 크기
    위치:
    크기
    Ubuntu(구축된 환경)
    337.3MB
    Gitlab Registry
    123 MB
    Docker의 호스트는 Ubuntu16입니다.조금 더 깎을 수도 있어요.

    좋은 웹페이지 즐겨찾기