728x90
반응형
자바를 사용할 일이 생겨서 공부한 내용을 글로 남겨두려 합니다.
윈도우 도커는 기본적으로 깔려있다는 전제입니다.
sts를 컴퓨터에 깔기 귀찮아서 devcontainer를 사용해 자바를 사용하고 있습니다.
버전은 이렇게 됩니다.
java - 8
gradle - 2.13
vagrant - 16
폴더 구성입니다
이제 기동을 위한 소스코드를 작성해보겠습니다.
1. devcontainer 구성
1.1 devcontainer.json 작성하기
2023.02.12 - [programing/infra] - [ devcontainer ] devcontainer.json 이해하기
devcontainer.json에 대해 궁금하시다면 이 글을 참고해주세요
저는 devcontainer.json을 이렇게 구성했습니다.
{
"name": "devcontainer-example",
"dockerComposeFile": "../../docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspace",
"remoteUser": "root",
"customizations": {
"vscode": {
"settings": {
"editor.mouseWheelZoom": true,
"editor.renderWhitespace": "all",
"workbench.editor.enablePreview": false,
"terminal.integrated.scrollback": 10000,
"extensions.ignoreRecommendations": true,
"java.home": "/docker-java-home",
"java.jdt.ls.vmargs": "-javaagent:/usr/local/bin/lombok.jar",
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "/usr/local/sdkman/candidates/java/current",
"default" : true
}
],
"java.import.gradle.enabled": false
},
"extensions": [
"vscjava.vscode-java-pack",
"adashen.vscode-tomcat",
"eamodio.gitlens",
"mhutchie.git-graph",
"donjayamanne.githistory",
"alefragnani.bookmarks",
"oderwat.indent-rainbow",
"2gua.rainbow-brackets",
"redhat.vscode-yaml",
"arjun.swagger-viewer",
"42crunch.vscode-openapi",
"rangav.vscode-thunder-client",
"pivotal.vscode-boot-dev-pack",
"gabrielbb.vscode-lombok",
"vscjava.vscode-gradle"
]
}
}
}
1.2 도커파일 작성하기
저는 microsoft에서 올려준 소스를 참고했습니다.
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.191.1/containers/java/.devcontainer/base.Dockerfile
ARG VARIANT="16"
FROM mcr.microsoft.com/vscode/devcontainers/java:0-8
# [Option] Install Maven
ARG INSTALL_MAVEN="true"
ARG MAVEN_VERSION=""
# [Option] Install Gradle
ARG INSTALL_GRADLE="true"
ARG GRADLE_VERSION="2.13"
RUN if [ "${INSTALL_MAVEN}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/sdkman/bin/sdkman-init.sh && sdk install maven \"${MAVEN_VERSION}\""; fi \
&& if [ "${INSTALL_GRADLE}" = "true" ]; then su vscode -c "umask 0002 && . /usr/local/sdkman/bin/sdkman-init.sh && sdk install gradle \"${GRADLE_VERSION}\""; fi
# [Choice] Node.js version: none, lts/*, 16, 14, 12, 10
ARG NODE_VERSION="none"
RUN if [ "${NODE_VERSION}" != "none" ]; then su vscode -c "umask 0002 && . /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor > /usr/share/keyrings/yarn-archive-keyring.gpg
# [Optional] Uncomment this section to install additional OS packages.
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends tomcat9
RUN ln -s /etc/tomcat9 /usr/share/tomcat9/conf
# [Optional] Uncomment this line to install global node packages.
RUN curl -o /usr/local/bin/lombok.jar https://projectlombok.org/downloads/lombok.jar
제가 작성한 도커파일입니다.
2. docker-compose.yml 작성
version: "3.7"
services:
app:
container_name: app
build:
context: ./devcontainer/.devcontainer
volumes:
- ./code:/workspace/code:cached
ports:
- "8080:8080"
command: sleep infinity
networks:
- app_networks
volumes:
data:
networks:
app_networks:
도커파일의 구조를 보도록 context를 작성하고 서비스 이름을 devcontainer.json에 설정해둔 service랑 맞추기만 하면 끝입니다.
기동이 되는지 확인 해보겠습니다.
클릭해주세요
devcontainer를 선택하고 open 해주세요
그러면 이렇게
설정해 준 파일들이 표시된 vscode 창이 새로 열리면 성공입니다.
자바 버전이랑 그래들 버전도 확인 가능합니다.
그리고 윈도우 도커를 보면
서비스가 기동되고 있는 걸 확인할 수 있습니다.
728x90
반응형
'programing > java' 카테고리의 다른 글
[ java ] devcontainer로 java 프로젝트 기동하기(gradle) -2 (0) | 2023.02.12 |
---|
댓글