{"id":6139,"date":"2021-02-22T13:22:57","date_gmt":"2021-02-22T07:52:57","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=6139"},"modified":"2021-02-22T13:23:09","modified_gmt":"2021-02-22T07:53:09","slug":"react-js-web-app-deployment-in-docker","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/react-js-web-app-deployment-in-docker\/","title":{"rendered":"React js web app deployment in Docker"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\">React js web app deployment in Docker<\/h4>\n\n\n\n<h4 class=\"wp-block-heading\">Date: 22-02-2021<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 1:<\/strong> Create a Dockerfile in the directory root with below content based on your deployment procedure.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=====<br>FROM node:12.2.0-alpine as react_build<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#also say<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WORKDIR \/home\/ubuntu\/workspace\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#copy the react app to the container<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">COPY  .   \/home\/ubuntu\/workspace\/<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># #prepare the container for building react<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RUN npm install &#8211;silent<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RUN npm install react-scripts@3.0.1 -g &#8211;silent<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">RUN npm run build<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"># Setup static server<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">FROM nginx:stable-alpine<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">COPY &#8211;from=react_build \/home\/ubuntu\/workspace  \/build \/usr\/share\/nginx\/html<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">COPY nginx\/nginx.conf    \/etc\/nginx\/conf.d\/default.conf<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">EXPOSE 80<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CMD [&#8220;nginx&#8221;, &#8220;-g&#8221;, &#8220;daemon off;&#8221;]<br>=====<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 2:<\/strong> Create nginx.conf file in nginx directory with below content.<br>=====<br>server {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;listen 80;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;server_name website name;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">location \/ {<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;root &nbsp; \/usr\/share\/nginx\/html;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp; index.html index.htm;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;&nbsp;&nbsp;try_files $uri $uri\/ \/index.html;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;&nbsp;}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">=====<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Step 3:<\/strong> Run the below command for docker container creation.<br>&nbsp; &nbsp; # sudo docker build &#8211;rm -t container name .<br><br><strong>Step 4:<\/strong> Run the below command to run the container.<br>&nbsp; &nbsp; # sudo docker run -d -p 3000:80 -t container name<br><br><strong>Step 5:<\/strong> You can check the website status on the browser.<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; http:\/\/website name:3000<\/p>\n","protected":false},"excerpt":{"rendered":"<p>React js web app deployment in Docker Date: 22-02-2021 Step 1: Create a Dockerfile in the directory root with below [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1020],"tags":[271,823],"class_list":["post-6139","post","type-post","status-publish","format-standard","hentry","category-containers-kubernetes","tag-nginx","tag-react-js-deployment","psol-cat-containers-kubernetes"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-1B1","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/6139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=6139"}],"version-history":[{"count":0,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/6139\/revisions"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=6139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=6139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=6139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}