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에서 이동하는 프로그램이 없습니다.
미리 준비한 물건
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
가동 빈 컨테이너
우선 미리 준비한 서류가 다음과 같다고 가정하자.
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"]
docker build -t imart-base:4.0.48 .
이미지 가져오기 및 시작
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
가동 빈 컨테이너
우선 미리 준비한 서류가 다음과 같다고 가정하자.
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입니다.조금 더 깎을 수도 있어요.
Reference
이 문제에 관하여(intra-mart를 시작하는 Docker 컨테이너를 만듭니다.알피니로.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tsgkdt/items/8564013885f23528b973
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
http://<Dockerのホスト>:8080/imart/system/login
http://<Dockerのホスト>:8080/imart/login
Resin이 포함된 컨테이너의 이미지 크기
위치:
크기
Ubuntu(구축된 환경)
337.3MB
Gitlab Registry
123 MB
Docker의 호스트는 Ubuntu16입니다.조금 더 깎을 수도 있어요.
Reference
이 문제에 관하여(intra-mart를 시작하는 Docker 컨테이너를 만듭니다.알피니로.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tsgkdt/items/8564013885f23528b973텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)