{"id":1760,"date":"2019-01-14T21:22:48","date_gmt":"2019-01-14T12:22:48","guid":{"rendered":"http:\/\/43.203.250.216\/?p=1760"},"modified":"2020-12-30T13:26:35","modified_gmt":"2020-12-30T04:26:35","slug":"travis-ci-%ec%84%a4%ec%a0%95%ea%b3%bc-docker-image-%ec%82%ac%ec%9a%a9","status":"publish","type":"post","link":"https:\/\/litcoder.com\/?p=1760","title":{"rendered":"Travis CI \uc124\uc815\uacfc docker image \uc0ac\uc6a9"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>GitHub project\uc5d0 CI\ub97c \ubd99\uc774\uace0 \uc2f6\uc740\ub370 Jenkins server\uac00 \ud68c\uc0ac firewall \uc548\uc5d0 \ub4e4\uc5b4 \uc788\uc5b4\uc11c GitHub\uc5d0\uc11c \uc9c1\uc811 webhook\uc744 \ubd99\uc77c \uc218 \uc5c6\ub294 \ubb38\uc81c\uac00 \uc788\ub2e4. Jenkins\uc758 GitHub plugin\uc73c\ub85c tunneling\uc744 \uc124\uc815\ud558\ub294 \ubc29\ubc95 \ub4f1 \uc788\uae30\ub294 \ud558\uc9c0\ub9cc \ub2e4\ub978 CI \uc635\uc158\ub4e4\uc744 \uc0b4\ud3b4 \ubcf4\ub358\uc911 Open source project\uc5d0 \ub300\ud574\uc11c\ub294 \ubb34\ub8cc\ub77c\ub294\u00a0<a href=\"https:\/\/travis-ci.org\">Travis CI<\/a>\uac00 \uc788\ub2e4\ub294 \uac83\uc744 \uc54c\uac8c \ub418\uc5c8\ub2e4. Travis CI\ub294 \uae30\ubcf8\uc73c\ub85c Ubuntu\ub97c \uc9c0\uc6d0\ud558\uace0 \uadf8 \uc678\uc758 \uacbd\uc6b0\ub294 docker\ub97c \uc0ac\uc6a9\ud574\uc11c \ud658\uacbd\uc744 \uc124\uc815\ud560 \uc218\ub3c4 \uc788\ub2e4. \uc774 \ud3ec\uc2a4\ud305\uc740 Travis CI\uc5d0\uc11c ClearLinux docker\ub97c \uc0ac\uc6a9\ud55c \uc124\uc815\uc5d0 \ub300\ud55c \uae30\ub85d\uc774\ub2e4.<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\uc0bd\uc9c81: Travis CI\uc758 Ubuntu\uc774\uc6a9<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\ube4c\ub4dc\uc640 Google test\ub97c \uc774\uc6a9\ud55c unit test\ub9cc \ud560 \uac83\uc774\ub2c8\uae4c OS\ub97c \ud06c\uac8c \ud0c0\uc9c0 \uc54a\uc744\ud14c\ub2c8 \uae30\ubcf8\uc73c\ub85c \uc81c\uacf5\ub418\ub294 Ubuntu \ud658\uacbd\uc5d0 \ud544\uc694\ud55c \ub3c4\uad6c\ub4e4\ub9cc \uc124\uce58 \ud558\uba74 \uac00\uc7a5 \ube60\ub974\uc9c0 \uc54a\uc744\uae4c?<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\uc77c\uacac \ud0c0\ub2f9\ud574 \ubcf4\uc774\uae30\ub294 \ud558\uc9c0\ub9cc \ubb38\uc81c\ub294 \uc758\uc874\uc131\uc774\ub2e4. Pre-compile\ub41c Google test\ub97c download \ubc1b\ub294\ub2e4 \ud574\ub3c4, 2019\ub144 1\uc6d4 \ud604\uc7ac \uc544\uc9c1 Travis CI\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 Ubuntu\uc758 \uac00\uc7a5 \ucd5c\uc2e0 \ubc84\uc804\uc740 Xenial\uc774\ub2e4. CMake version\uc774 \uc548\ub9de\uc544\uc11c \ucd5c\uc2e0\ubc84\uc804\uc73c\ub85c \uc124\uce58\ud558\uace0 Intel LibVA, Intel MediaSDK\ub4f1\uc758 \uc758\uc874 package\ub4e4\uc744 \ucef4\ud30c\uc77c\ud55c \ud6c4 \ube4c\ub4dc\ub97c \ud558\uace0 unittest\ub97c \ud558\ub3c4\ub85d \ud558\ub294\ub370 <strong>14\ubd84<\/strong>\uc774 \ub118\uac8c \uac78\ub838\ub2e4. \ub2e4\uc74c\uc740 \uc0ac\uc6a9\ud55c .travis.yml file\uc774\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"\" data-enlighter-title=\".travis.yml\" data-enlighter-group=\"\">language: cpp \n\ncompiler:  - gcc \n\ndist: xenial \n\nenv:   \n  global:    \n- EA_INSTALL_PREFIX=${TRAVIS_BUILD_DIR}\/local    \n- PATH=${EA_INSTALL_PREFIX}\/bin:$PATH before_install:  \n- mkdir -p ${TRAVIS_BUILD_DIR}\/local  \n- sudo apt-get install curl wget autoconf libtool libdrm-dev \\\nlibboost-all-dev libgstreamer1.0-0 libasound-dev \\\nlibgles2-mesa-dev gstreamer1.0-plugins-base \\\ngstreamer1.0-plugins-good gstreamer1.0-plugins-bad \\\ngstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc \\\ngstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa \\\ngstreamer1.0-pulseaudio\n- cd ${TRAVIS_BUILD_DIR}&amp;&amp; \\\nwget https:\/\/github.com\/Kitware\/CMake\/releases\/download\/v3.13.2\\\n\/cmake-3.13.2.tar.gz \\\n&amp;&amp; tar xvf cmake-3.13.2.tar.gz&amp;&amp;cd cmake-3.13.2&amp;&amp;.\/configure --\\\nprefix=${EA_INSTALL_PREFIX}&amp;&amp;make&amp;&amp;make install  \n- cd ${TRAVIS_BUILD_DIR}&amp;&amp; \\\nwget https:\/\/github.com\/intel\/libva\/archive\/2.3.0.tar.gz&amp;&amp;\\\ntar xvf 2.3.0.tar.gz \\\n&amp;&amp;cd libva-2.3.0&amp;&amp;.\/autogen.sh&amp;&amp;.\/configure --\\\nprefix=${EA_INSTALL_PREFIX}&amp;&amp;make&amp;&amp;make install  \n- cd ${TRAVIS_BUILD_DIR}&amp;&amp; \\\nwget https:\/\/github.com\/Intel-Media-SDK\/MediaSDK\/archive\/\\\nintel-mediasdk-18.3.1.tar.gz \\\n&amp;&amp; tar xvf intel-mediasdk-18.3.1.tar.gz&amp;&amp;\\\ncd MediaSDK-intel-mediasdk-18.3.1\/&amp;&amp; \\\ncmake -DCMAKE_INSTALL_PREFIX=\/usr -DENABLE_OPENCL=OFF -DBUILD_SAMPLES=OFF .&amp;&amp;make&amp;&amp;\\\nmake install \n\nscript:  \n- cd ${TRAVIS_BUILD_DIR} &amp;&amp; \\\ncmake . &amp;&amp; make &amp;&amp; make install &amp;&amp; test\/ea_test<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\uc0bd\uc9c82: Clear Linux docker image \uc0ac\uc6a9\u00a0<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\uc2dc\uac04\ub9cc \uc624\ub798 \uc548 \uac78\ub838\uc5b4\ub3c4 \uae30\ubcf8 Ubuntu OS\ub85c \uc5b4\ub5bb\uac8c\ub4e0 \ud574\ubcf4\ub294 \uac74\ub370, 14\ubd84\uc774\uba74 \uc2dc\uac04\uc774 \ub108\ubb34 \uc624\ub798 \uac78\ub9b0\ub2e4. \uc774\uc655 \uc2dc\uac04\uc774 \uc624\ub798 \uac78\ub9ac\ub294 \uac70\ub77c\uba74 \ud0c0\uac9f\uc778 Clear Linux docker image\ub97c \uc0ac\uc6a9\ud574\ubcf4\uc790.<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Clear Linux docker image\ub97c \uc0dd\uc131\ud558\uae30 \uc704\ud55c dockerfile\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 \uc791\uc131\ud574\uc900 \ub2e4\uc74c<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"dockerfile\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">FROM clearlinux\u2029\nRUN clrtrust generate\u2029\nRUN swupd bundle-add software-defined-cockpit-dev<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">.travis.yml file\uc744 \ub2e4\uc74c\uacfc \uac19\uc774 \uc120\uc5b8\ud574 \uc900\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">language: cpp\nservices:\n - docker\nbefore_install:\n - docker build -t clearlinux_ea .\n - docker run -d -v ${TRAVIS_BUILD_DIR}:\/src clearlinux_ea \/bin\/sh -c \"cd \/src;cmake .;make;make install\"\n\nscript:\t \t \n - docker run -d -v ${TRAVIS_BUILD_DIR}:\/src clearlinux_ea \/bin\/sh -c \"cd \/src;test\/ea_test\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><p>\ucd1d \uc18c\uc694\ub41c \uc2dc\uac04\uc740 <strong>17\ubd84 41\ucd08<\/strong> \uadf8 \uc911\uc5d0 docker \uc124\uc815\ud558\ub294\ub370 \uac78\ub9b0 \uc2dc\uac04\ub9cc <strong>16\ubd84<\/strong>\uc774 \ub118\ub294\ub2e4. \ub098\uba38\uc9c0 \uc2dc\uac04\uc5d0 unit test. \ub300\ubd80\ubd84\uc758 \uc2dc\uac04\uc774 docker\ub97c \ube4c\ub4dc \ud558\uace0 \uc124\uc815\ud558\ub294\ub370 \uc0ac\uc6a9 \ub418\uace0 \uc788\uc5c8\ub2e4.\u00a0<\/p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\uc0bd\uc9c83: \ub9cc\ub4e4\uc5b4 \ub454 Docker image \ub2e4\uc6b4\ub85c\ub4dc<\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\ube4c\ub4dc\ud558\ub294\ub370 \uc2dc\uac04\uc774 \uc624\ub798 \uac78\ub9b0\ub2e4\uba74 \uc774\ubbf8 \ub9cc\ub4e4\uc5b4 \ub454 docker image\ub97c \uc800\uc7a5\uc18c\uc5d0 \ub123\uc5b4\ub450\uace0 pull\ud574\uc11c \uc0ac\uc6a9\ud558\uba74 \uc880 \ube60\ub974\uc9c0 \uc54a\uc744\uae4c? Docker \ube4c\ub4dc vs Docker \ub2e4\uc6b4\ub85c\ub4dc.<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubbf8 \ube4c\ub4dc \ud55c docker image\ub97c \uacf5\uac1c \uc800\uc7a5\uc18c\uc778 <a href=\"https:\/\/hub.docker.com\">docker hub<\/a>\uc5d0 \ub123\uc5b4\ub450\uace0 Travis CI\uc5d0\uc11c pull\ud558\ub3c4\ub85d \ubcc0\uacbd\ud558\uba74 \uc2dc\uac04\uc740 <strong>8\ubd84<\/strong>\uc815\ub3c4\ub85c \uc904\uc5b4\ub4e0\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"yaml\" data-enlighter-theme=\"eclipse\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">language: cpp\n\nservices:\n - docker\n\t\nbefore_install:\n - docker pull litcoder\/clearlinux_ea\n - docker run -v ${TRAVIS_BUILD_DIR}:\/src litcoder\/clearlinux_ea \/bin\/sh -c \"cd \/src;cmake .;make;make install;\"\n\t\nscript:\n - docker run -v ${TRAVIS_BUILD_DIR}:\/src litcoder\/clearlinux_ea \/bin\/sh -c \"cd \/src;test\/ea_test\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><p>\ud760.. \uc77c\ub2e8\uc740 \uc774\uac78\ub85c.<\/p><h2>\u00a0\uacb0\ub860<\/h2><p>Travis CI\uc5d0\uc11c \uc81c\uacf5\ub418\ub294 \uc5f0\uc0b0 \uc131\ub2a5\uc740 \ub9e4\uc6b0 \ub5a8\uc5b4\uc838\uc11c \ucef4\ud30c\uc77c\uc774\ub098 \ub3c4\ucee4 \ube4c\ub4dc\ub97c \ud6a8\uc728\uc801\uc73c\ub85c \uc218\ud589\ud558\uc9c0 \ubabb\ud55c\ub2e4. \ubc18\uba74, \uc774\ubbf8 \ub9cc\ub4e4\uc5b4\uc9c4 \uc774\ubbf8\uc9c0\uc758 \ub2e4\uc6b4\ub85c\ub4dc\ub294 \uc0c1\ub300\uc801\uc73c\ub85c \ube60\ub974\uac8c \uc218\ud589 \ud560 \uc218 \uc788\ub2e4. Travis CI\uc5d0\uc11c Docker\ub97c \uc774\uc6a9\ud55c \ud14c\uc2a4\ud2b8 \ud658\uacbd\uc744 \uad6c\uc131\ud558\uace0\uc790 \ud55c\ub2e4\uba74 \ubbf8\ub9ac \ub9cc\ub4e4\uc5b4 \ub454 \uc774\ubbf8\uc9c0\ub97c Docker Hub\uc5d0 \uc62c\ub824\ub450\uace0 CI script\uc5d0\uc11c pull \ud574\uc11c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc774 \uac00\uc7a5 \uace0\ub824\ud574 \ubcfc \ub9cc\ud55c \uc120\ud0dd\uc774\ub2e4.<\/p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>GitHub project\uc5d0 CI\ub97c \ubd99\uc774\uace0 \uc2f6\uc740\ub370 Jenkins server\uac00 \ud68c\uc0ac firewall \uc548\uc5d0 \ub4e4\uc5b4 \uc788\uc5b4\uc11c GitHub\uc5d0\uc11c \uc9c1\uc811 webhook\uc744 \ubd99\uc77c \uc218 \uc5c6\ub294 \ubb38\uc81c\uac00 \uc788\ub2e4. Jenkins\uc758 GitHub plugin\uc73c\ub85c tunneling\uc744 \uc124\uc815\ud558\ub294 \ubc29\ubc95 \ub4f1 \uc788\uae30\ub294 \ud558\uc9c0\ub9cc \ub2e4\ub978 CI \uc635\uc158\ub4e4\uc744 \uc0b4\ud3b4 \ubcf4\ub358\uc911 Open source project\uc5d0 \ub300\ud574\uc11c\ub294 \ubb34\ub8cc\ub77c\ub294\u00a0Travis CI\uac00 \uc788\ub2e4\ub294 \uac83\uc744 \uc54c\uac8c \ub418\uc5c8\ub2e4. Travis CI\ub294 \uae30\ubcf8\uc73c\ub85c Ubuntu\ub97c \uc9c0\uc6d0\ud558\uace0 \uadf8 \uc678\uc758 \uacbd\uc6b0\ub294 docker\ub97c \uc0ac\uc6a9\ud574\uc11c \ud658\uacbd\uc744 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[5,6],"tags":[27,36,54,72,133,134],"class_list":["post-1760","post","type-post","status-publish","format-standard","hentry","category-programming","category-tools","tag-clearlinux","tag-docker","tag-github","tag-linux","tag-travis","tag-travis-ci"],"jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":4707,"url":"https:\/\/litcoder.com\/?p=4707","url_meta":{"origin":1760,"position":0},"title":"Smoke test\ub97c \uc704\ud55c GitHub Self-hosted Runner \uc124\uc815","author":"litcoder","date":"2026\ub144 9\uc6d4 16\uc77c","format":false,"excerpt":"Unittest\uac00 \uac1c\ubc1c \uacfc\uc815\uc5d0\uc11c \ub17c\ub9ac\ub97c \uc810\uac80\ud558\ub294\ub370 \uc720\uc6a9\ud558\uae30\ub294 \ud558\uc9c0\ub9cc \uc774\uc138\uc0c1\uc5d0\ub294 integration test\uac00 \ub2f4\ub2f9\ud574\uc57c \ud558\ub294 \ubd80\ubd84\ub3c4 \uc5c4\uc5f0\ud788 \uc874\uc7ac\ud55c\ub2e4. \uac01\uac01\uc758 \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc774 \uc798 \uc791\uc131\ub418\uc5c8\ub2e4 \ud560\uc9c0\ub77c\ub3c4 \uc774\uac83\uc744 \ud1b5\ud569\ud588\uc744 \ub54c\uc758 \ub3d9\uc791\uc744 \ubcf4\uc7a5\ud558\ub294 \uac83\uc740 \ub610 \ub2e4\ub978 \uc774\uc57c\uae30 \uc774\uae30 \ub54c\ubb38\uc774\ub2e4. \uc774 \ubd80\ubd84\uc744 \ucee4\ubc84\ud558\uae30 \uc704\ud55c \ubaa9\uc801\uc73c\ub85c \uac00\uc0c1\uc758 \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud558\uace0 \ud504\ub85c\uadf8\ub7a8\uc758 \ucc98\uc74c \uc2dc\uc791 \ubd80\ubd84\ubd80\ud130 \ub9c8\uc9c0\ub9c9 \ucd9c\ub825 \ubd80\ubd84\uae4c\uc9c0(E2E) \uc810\uac80\ud558\ub294 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ub9cc\ub4e4\uc5b4 \ub450\uc5c8\ub2e4.\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/github_vm_no_space_error.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/github_vm_no_space_error.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/github_vm_no_space_error.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/github_vm_no_space_error.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/github_vm_no_space_error.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/github_vm_no_space_error.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":4332,"url":"https:\/\/litcoder.com\/?p=4332","url_meta":{"origin":1760,"position":1},"title":"Release Please &#8211; Change log \uc0dd\uc131 \uc790\ub3d9\ud654","author":"litcoder","date":"2026\ub144 5\uc6d4 6\uc77c","format":false,"excerpt":"\ud300\uc5d0\uc11c Conventional commit\uc744 \ub530\ub974\uace0 \uc788\ub2e4\uba74, \uc774\uac83\uc744 \ud65c\uc6a9\ud574\uc11c change log\ub97c \ub9cc\ub4dc\ub294 \uac83\uacfc \uac19\uc740 \uadc0\ucc2e\uc740 \uc77c\ub4e4\uc744 \uc790\ub3d9\uc73c\ub85c \uc218\ud589\ud574 \uc8fc\ub294 \ub3c4\uad6c\ub4e4\uc774 \ub9ce\uc774 \uc788\ub2e4. \uc774 \ud3ec\uc2a4\ud305\uc5d0\uc11c\ub294 \uadf8 \uc911\uc5d0\uc11c\ub3c4 GitHub\uc5d0\uc11c \uc0ac\uc6a9\ud558\uae30\uc5d0 \ud3b8\ud558\ub2e4\ub294 release-please\ub97c Rust project\uc5d0 \uc801\uc6a9\ud574 \ubcf8 \ub0b4\uc6a9\uc744 \ub2e4\ub8ec\ub2e4. \uc0ac\uc804 \uc900\ube44 GitHub PAT(Personal Access Token) GitHub -> Settings -> Developer settings -> Personal access tokens\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/release-please-pr-created.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/release-please-pr-created.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/release-please-pr-created.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/release-please-pr-created.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/release-please-pr-created.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/release-please-pr-created.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":4286,"url":"https:\/\/litcoder.com\/?p=4286","url_meta":{"origin":1760,"position":2},"title":"OpenProject\ub97c Docker\ub85c \uc124\uce58","author":"litcoder","date":"2026\ub144 4\uc6d4 8\uc77c","format":false,"excerpt":"\ud504\ub85c\uc81d\ud2b8 \uad00\ub9ac \ub3c4\uad6c\ub85c \ub9ce\uc774 \uc0ac\uc6a9\ub418\ub294 Atlassian\uc758 JIRA\ub97c \ub300\uccb4\ud558\uae30 \uc704\ud55c \uc624\ud508\uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\ub4e4 \uc911 \uac00\uc7a5 \uc778\uae30\uac00 \uc788\ub2e4\ub294 OpenProject\ub97c \ud68c\uc0ac\uc5d0\uc11c \uc9c4\ud589\ud558\ub294 \ud504\ub85c\uc81d\ud2b8\ub97c \uc704\ud574 \uc0ac\uc6a9\ud574 \ubcf4\uae30\ub85c \ud588\ub2e4. Docker\ub85c \uc124\uce58\ud558\uae30 \uc900\ube44 Source code clone OpenProject\ub294 GitHub repo\uc5d0\uc11c tag\uac00 \uc544\ub2cc branch\uba85\uc744 stable\/<version> \ud615\uc2dd\uc73c\ub85c \ub9b4\ub9ac\uc988\ud558\uace0 \uc788\ub294 \ub4ef \ud558\ub2e4. 2026\ub144 4\uc6d4 \ud604\uc7ac \uac00\uc7a5 \ucd5c\uc2e0 \ubc84\uc804\uc778 17\ubc84\uc804\uc744 \ub2e4\uc74c\uacfc \uac19\uc774\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/03\/openproject17_login.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/03\/openproject17_login.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/03\/openproject17_login.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":3116,"url":"https:\/\/litcoder.com\/?p=3116","url_meta":{"origin":1760,"position":3},"title":"CARLA client\ub97c build\ud574\uc57c \ud558\ub294\ub370 clang-8\uc774 \uc5c6\ub304\ub2e4.","author":"litcoder","date":"2022\ub144 7\uc6d4 27\uc77c","format":false,"excerpt":"2022\ub144 9\uc6d4 \ud604\uc7ac CARLA simulator\uc758 \ucd5c\uc2e0 \ubc84\uc804\uc778 0.9.13\uc73c\ub85c PythonAPI\ub97c \ube4c\ub4dc\ud558\ub824\uace0 \ud558\uba74 clang-8 version\uc744 \uc694\uad6c\ud558\ub294\ub370 Ubuntu 22.04\uc5d0\uc11c\ub294 clang-8\uc758 repository\ub97c \ucd94\uac00\ud558\uace0 \uc124\uce58 \uc2dc\ub3c4\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \uc758\uc874\uc131 \uc624\ub958\uac00 \uc0dd\uae34\ub2e4. The following packages have unmet dependencies: clang-8 : Depends: libllvm8 (>= 1:8~svn298832-1~) but it is not going to be installed Depends: libstdc++-5-dev but it\u2026","rel":"","context":"&quot;Linux&quot;\uc5d0\uc11c","block_context":{"text":"Linux","link":"https:\/\/litcoder.com\/?cat=4"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4673,"url":"https:\/\/litcoder.com\/?p=4673","url_meta":{"origin":1760,"position":4},"title":"Rust: pbjson crate\uc5d0\uc11c &#8220;redundant reference&#8221; \uacbd\uace0","author":"litcoder","date":"2026\ub144 8\uc6d4 26\uc77c","format":false,"excerpt":"\ub85c\uceec\uc5d0\uc11c lint \uac80\uc0ac \uae4c\uc9c0 \ub9c8\uce58\uace0 \uc11c\ubc84\ub85c push \ud588\ub294\ub370, \ub85c\uceec\uc5d0\uc11c \ubcf4\uc774\uc9c0 \uc54a\uc558\ub358 \"redundant referece\" \uacbd\uace0\uac00 \ub728\uba74\uc11c clippy\ub97c \uc218\ud589\ud558\ub294 Rust\uc6a9 CI\uac00 \uc2e4\ud328 \ud588\ub2e4. \ud604\uc7ac \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c Rust\uc6a9 CI\ub294 \uacbd\uace0\ub9cc \ub5a0\ub3c4 \uc2e4\ud328\ub85c \uac04\uc8fc\ud558\ub294 -D warnings \ud30c\ub77c\ubbf8\ud130\ub97c \uc124\uc815\ud558\uace0 \uc788\ub294\ub370 \uc774\uac83 \ub54c\ubb38\uc5d0 CI \uc804\uccb4\uac00 \uc2e4\ud328\ud558\ub294 \ubb38\uc81c\uac00 \uc0dd\uacbc\ub2e4. \ub85c\uceec\uacfc\uc758 \ucc28\uc774\uc810\uc744 \uc0b4\ud3b4 \ubcf4\ub2c8, local\uc5d0\uc11c\ub294 Cargo 1.94.1 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud558\ub294\ub370\u2026","rel":"","context":"&quot;Programming&quot;\uc5d0\uc11c","block_context":{"text":"Programming","link":"https:\/\/litcoder.com\/?cat=5"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/sc_rust_redundant_reference.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/sc_rust_redundant_reference.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/sc_rust_redundant_reference.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/08\/sc_rust_redundant_reference.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4299,"url":"https:\/\/litcoder.com\/?p=4299","url_meta":{"origin":1760,"position":5},"title":"OpenProject\uc640 GitHub \uc5f0\ub3d9","author":"litcoder","date":"2026\ub144 4\uc6d4 15\uc77c","format":false,"excerpt":"\uc5f0\ub3d9\uc744 \uc704\ud55c \uc124\uc815 #1 \uba3c\uc800 OpenProject\uc5d0\uc11c \uc5f0\ub3d9\uae30\ub2a5\uc744 \uc804\ub2f4\ud560 \uacc4\uc815\uc744 \ud558\ub098 \uc0dd\uc131(GitHub Bot)\ud574\uc900\ub2e4. \uadf8\ub9ac\uace0 \uc0c8\ub85c\uc6b4 role(Github integration)\uc744 \ud558\ub098 \ub9cc\ub4e4\uace0 View work packages\uc640 Add comments \uad8c\ud55c\uc744 \uc900\ub2e4. #2 GitHub\uc640 \uc5f0\ub3d9\ud558\uace0\uc790 \ud558\ub294 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc0dd\uc131\ud55c \uc804\ub2f4\uacc4\uc815(GitHub Bot)\uc744 \ucd94\uac00\ud558\uace0 \uc5ed\ud560\ub85c GitHub integration\uc744 \ubd80\uc5ec\ud55c\ub2e4. #3 OpenProject\uc5d0 GitHub \uc804\ub2f4 \uacc4\uc815(GitHub Bot)\uc73c\ub85c \ub85c\uadf8\uc778\ud574\uc11c Account settings -> Access tokens\u2026","rel":"","context":"&quot;Tools &amp; Tips&quot;\uc5d0\uc11c","block_context":{"text":"Tools &amp; Tips","link":"https:\/\/litcoder.com\/?cat=6"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/add_githubbot_member.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/add_githubbot_member.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/litcoder.com\/wp-content\/uploads\/2026\/04\/add_githubbot_member.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]}],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1760","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1760"}],"version-history":[{"count":1,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1760\/revisions"}],"predecessor-version":[{"id":2721,"href":"https:\/\/litcoder.com\/index.php?rest_route=\/wp\/v2\/posts\/1760\/revisions\/2721"}],"wp:attachment":[{"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1760"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1760"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/litcoder.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1760"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}