[ASP.NET] μλλ‘μ§ λ컀(Docker)μμ μ λ λμ(Selenium) μλΉμ€ λ§λλ λ°©λ²
λ컀(Docker) μ λ λμ(Selenium) μλΉμ€
νμ¬ κ·Όλ¬΄νκ³ μλ νμ¬μλ μ μ κ²°μ¬λ₯Ό μν μ΄μΉ΄μ΄νΈ ERPλ₯Ό μ¬μ©νκ³ μμ΅λλ€. μ΄ μλΉμ€λ μ€μκ°μΌλ‘ μλ£ μ λ ₯κ³Ό μ‘°νκ° κ°λ₯νκ³ , μ μ λ¬Έμ κ²°μ¬ μ§ν μν©μ νμΈν μ μμ£ . κ²λ€κ° λͺ¨λ°μΌ μ±κ³Ό μΉ κΈ°λ° μλΉμ€λ₯Ό μ 곡νκ³ μμ΄ μΈν°λ·λ§ λλ€λ©΄ μΈμ μ΄λμλ μ¬μ©μ΄ κ°λ₯ν©λλ€. λν, κ°λ°μλ₯Ό μν REST APIλ μ 곡νκ³ μμ΅λλ€.
κ·Έλ°λ° ν κ°μ§ μμ£Ό μμ¬μ΄ λΆλΆμ΄ μμ΅λλ€. μ 무 νΉμ±μ νΉμ κ²°κ³Όλ₯Ό μ€μκ°μΌλ‘ μλ λ°κ³ μΆμλ°, νν μ΄ λΆλΆλ§ APIλ‘ μ 곡νμ§ μλκ΅°μ. κ³ κ°μΌν°μλ λ¬Έμν΄λ΄€μ§λ§ APIκ° μλ κ²μ΄ λ§κ³ , μμ§ κ°λ° κ³νλ μλ€κ³ νλκ΅°μ.
νμ§λ§ λ°©λ²μ΄ μμ£Ό μμ§λ μμμ΅λλ€. μ κ° μκ°ν ꡬμμ μλλ‘μ§ μλ²μ λ컀μμ ERP μΉ νμ΄μ§μ νΉμ νλͺ©μ μ λ λμμΌλ‘ νμΈνλ κ²μΈλ°μ. λΉμ°ν λ κ±°λΌ μκ°νκ³ , κ²°κ΅ μνλ κ²°κ³Όλ₯Ό μ»μ μ μμμ΅λλ€. μ΄λ² λ³Έλ¬Έμμλ λ컀μμ μ λ λμ μλΉμ€λ₯Ό λμνκΈ° μν μ€λΉ κ³Όμ κ³Ό λμ κ²°κ³Όλ₯Ό μ€λͺ νκ² μ΅λλ€.
μμ ꡬμ
μ λ λμμΌλ‘ νΉμ μΉμ¬μ΄νΈμ μ μν ν νΉμ λ°μ΄ν°λ₯Ό μ·¨λν©λλ€. κ·Έλ¦¬κ³ μ‘°κ±΄μ΄ μ±λ¦½νλ©΄ μλλ‘μ§ μ±(Chat)μ μ±λ΄μΌλ‘ λ©μμ§λ₯Ό μ μ‘νμ¬ μλ¦Όμ λ°λλ‘ ν©λλ€. μ΄ λμμ λ컀 μλΉμ€λ‘ μ μν©λλ€.
μ€λΉ λ¨κ³
1. μ λ λμ(Selenium) μ΅νκΈ°
μ λ λμμ μΉ λΈλΌμ°μ μλνλ₯Ό μν λΌμ΄λΈλ¬λ¦¬μ λλ€. λ³Έλ¬Έμμλ νΉμ μΉ νμ΄μ§μμ νΉμ λ°μ΄ν°λ€μ νμΈνλ μμ μ μνν μμ μ λλ€. μλ λ§ν¬λ₯Ό μ°Έκ³ νμ¬ μ λ λμμ μ΄λ»κ² μ¬μ©ν΄μΌ νλμ§ μμ보μΈμ.
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
2. μ±λ΄ μ°λνκΈ°
μλλ‘μ§λ μ±(Chat)μ΄λΌλ λ©μ μ λ₯Ό μ 곡ν©λλ€. μ λ λμμΌλ‘ μ»μ λ°μ΄ν°λ₯Ό μ±μ μ±λ΄κ³Ό μ°λνμ¬ μλ¦Όμ λ°μ κ²λλ€. μλ λ§ν¬λ₯Ό μ°Έκ³ νμ¬ μ±λ΄μ μ΄λ»κ² μ°λνλμ§ μ°Έκ³ νμΈμ.
[μ±λ΄/.NET] C#μμ μλλ‘μ§ Chatμ μ±λ΄ λ©μμ§ λ³΄λ΄κΈ°(μμ ν¬ν¨)
3. 리λ μ€(Linux) μμ μ μλΉμ€ λ§λ€κΈ°
μλλ‘μ§ λ컀μμ μλΉμ€λ₯Ό ꡬλνλ €λ©΄, 리λ μ€ λμ»€μ© μμ μ μλΉμ€λ₯Ό λ§λ€μ΄μΌ ν©λλ€. μλ λ§ν¬λ₯Ό μ°Έκ³ νμΈμ.
[ASP.NET] C# μλλ‘μ§ Linux Docker μ© μμ μ μλΉμ€ λ§λλ λ°©λ²
4. μλλ‘μ§ μμ μ€μΌμ€λ¬ μ μ©νκΈ°
μ΄μνκ²λ Linux Dockerμμ μ λ λμμ μ¬μ©νλ©΄ λ©λͺ¨λ¦¬ λμ(Memeory leak)κ° λ°μν©λλ€. μ΄μν μ μ κ°μ²΄λ₯Ό ν λ²λ§ μμ±νκ³ μ¬μ΄νΈλ‘ μ΄λνλ ν¨μλ§ νΈμΆνλλ°λ λμκ° λ°μν©λλ€. λλ체 μ μκΈ°λμ§ μ΄μ λ₯Ό μμ§λ μ°Ύμ§ λͺ»νμ΅λλ€. μ΄λ κ² λ©λͺ¨λ¦¬ λμκ° λ°μνμ¬ μ¬μ© κ°λ₯ν λ©λͺ¨λ¦¬κ° λΆμ‘±ν΄μ§λ©΄ μλλ‘μ§ λμ€κ° μ΄λ μκ° μλ΅μ΄ μλ μνκ° λ©λλ€.
κ·Έλμ μ 무 μκ°μλ§ μλΉμ€κ° λμνκ³ λ©μΆλλ‘ μ€μΌμ€λ¬λ₯Ό μ μ©νμ¬, μλΉμ€κ° μ’ λ£λλ©΄ λ©λͺ¨λ¦¬λ₯Ό ν볡ν μ μλλ‘ νΈλ²μ μ μ©νμ΅λλ€. μλλ‘μ§ μμ μ€μΌμ€λ¬ μ¬μ© λ°©λ²μ μλ λ§ν¬λ₯Ό μ°Έκ³ νμΈμ.
[Synology NAS] μμ μ€μΌμ€λ¬λ‘ μμ μμ½νκΈ°(μ¬μ©μ μ μ μ€ν¬λ¦½νΈ)
ν΅μ¬
Linux μμ μ μλΉμ€λ₯Ό λ§λλ μ λ°μ μΈ κ³Όμ μ μλ λ§ν¬λ₯Ό μ°Έκ³ ν©λλ€.
[ASP.NET] C# μλλ‘μ§ Linux Docker μ© μμ μ μλΉμ€ λ§λλ λ°©λ²
λ컀 μμ μ μλΉμ€μμ μ λ λμμ μ¬μ©νκΈ° μν΄μλ λ€μκ³Ό κ°μ μ΅μ μ€μ μ΄ νμν©λλ€. κ·Έ μΈ μ¬μ© λ°©λ²μ λμΌν©λλ€.
ChromeDriverService _driverService = ChromeDriverService.CreateDefaultService();
_driverService.HideCommandPromptWindow = true;
ChromeOptions _options = new ChromeOptions();
_options.AddArgument("disable-gpu");
_options.AddArgument("headless");
_options.AddArgument("no-sandbox");
_options.AddArgument("disable-dev-shm-usage");
ChromeDriver _driver = new ChromeDriver(_driverService, _options);
μλΉμ€ λΉλλ₯Ό μν Dockerfileμ λ€μκ³Ό κ°μ΄ μμ±ν©λλ€. λ컀μμ κ΅¬μ± μμλ₯Ό μ€μΉνκ³ , ν¬λ‘¬ λλΌμ΄λ²λ₯Ό μ€μΉνλ κ³Όμ μ μλ―Έν©λλ€.
FROM mcr.microsoft.com/dotnet/runtime:5.0 AS base
COPY . /app
WORKDIR /app
#ν¬νΈ λ²νΈλ μμλ‘ 8888
ENV ASPNETCORE_URLS http://*:8888
EXPOSE 8888
# RUN apt-get update
RUN apt-get update && apt-get install -y gnupg2
RUN apt install -y wget
# CHROME
RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/goodle.list'
RUN apt-get update
RUN apt-get install -y google-chrome-stable
# CHROME_DRIVER
RUN apt-get install -yqq unzip
RUN apt-get install -y curl
RUN wget -O /tmp/chromedriver.zip http://chromedriver.storage.googleapis.com/`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE`/chromedriver_linux64.zip
RUN unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/
ENV DISPLAY=:99
#ExamWorkerServiceλ νλ‘μ νΈ μ΄λ¦
ENTRYPOINT ["dotnet", "WorkerService.dll"]
μμμ μΈκΈν κ²μ²λΌ, λ컀 μλΉμ€μμ μ λ λμμ λμνλ©΄ λ©λͺ¨λ¦¬ λμκ° λ°μν©λλ€. μμ μ μ€μΌμ€λ¬μ μ¬μ©μ μ μ μ€ν¬λ¦½νΈλ₯Ό μΆκ°νμ¬ νΉμ μκ° λμλ§ λμνκ³ μ’ λ£λλλ‘ μ€μ ν©λλ€.
docker container start [컨ν
μ΄λ μ΄λ¦]
docker container stop [컨ν
μ΄λ μ΄λ¦]
λμ κ²°κ³Ό
μ λ λμμΌλ‘ μ»μ λ°μ΄ν° μ€ μλ¦Όμ΄ νμν μ 보λ₯Ό νμ±νμ¬ μ±λ΄μΌλ‘ λ©μμ§λ₯Ό μ λ¬νλ©΄, μλ μ΄λ―Έμ§μ²λΌ μ±λ΄ λ©μμ§λ₯Ό μ»μ μ μμ΅λλ€. μ΄ λ©μμ§κ° PCλ μ€λ§νΈν°μ μλ¦Όμ΄ λμ΄ μ€μκ°μΌλ‘ μ 무 νμΈμ΄ κ°λ₯νκ² λμ΅λλ€.
'Programming > .Net' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λκΈ
μ΄ κΈ κ³΅μ νκΈ°
-
ꡬλ
νκΈ°
ꡬλ νκΈ°
-
μΉ΄μΉ΄μ€ν‘
μΉ΄μΉ΄μ€ν‘
-
λΌμΈ
λΌμΈ
-
νΈμν°
νΈμν°
-
Facebook
Facebook
-
μΉ΄μΉ΄μ€μ€ν 리
μΉ΄μΉ΄μ€μ€ν 리
-
λ°΄λ
λ°΄λ
-
λ€μ΄λ² λΈλ‘κ·Έ
λ€μ΄λ² λΈλ‘κ·Έ
-
Pocket
Pocket
-
Evernote
Evernote
λ€λ₯Έ κΈ
-
[.Net] μ΄λ―Έμ§ λ·°μ΄λ ImageGlassλ‘ μ½κ² κ°λ°νκΈ°
[.Net] μ΄λ―Έμ§ λ·°μ΄λ ImageGlassλ‘ μ½κ² κ°λ°νκΈ°
2022.08.13 -
[.Net] λ€νΈμν¬ μ΄λν° IPμ£Όμμ κ³ κΈ μμ± λ³κ²½νκΈ°(μμ ν¬ν¨)
[.Net] λ€νΈμν¬ μ΄λν° IPμ£Όμμ κ³ κΈ μμ± λ³κ²½νκΈ°(μμ ν¬ν¨)
2022.07.16 -
[ASP.NET] Core Worker Serviceλ‘ λ λλ§μΈ μΌκ°μ μλλ‘μ§ μ± λ©μμ§λ‘ μλ¦Ό 보λ΄κΈ°
[ASP.NET] Core Worker Serviceλ‘ λ λλ§μΈ μΌκ°μ μλλ‘μ§ μ± λ©μμ§λ‘ μλ¦Ό 보λ΄κΈ°
2022.03.04 -
[ASP.NET] C# μλλ‘μ§ Linux Docker μ© μμ μ μλΉμ€ λ§λλ λ°©λ²
[ASP.NET] C# μλλ‘μ§ Linux Docker μ© μμ μ μλΉμ€ λ§λλ λ°©λ²
2022.02.28