{"id":1626,"date":"2016-03-03T09:16:44","date_gmt":"2016-03-03T08:16:44","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=1626"},"modified":"2023-06-12T14:45:41","modified_gmt":"2023-06-12T12:45:41","slug":"docker-kontener-zmienne-srodowiskowe","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/docker-kontener-zmienne-srodowiskowe\/","title":{"rendered":"Docker: kontener, zmienne \u015brodowiskowe"},"content":{"rendered":"\n<p>Tworz\u0105c kontener mo\u017cemy okre\u015bli\u0107 dost\u0119pne w&nbsp;nim zmienne \u015brodowiskowe. Ustawianie zmiennych \u015brodowiskowych jest istotnym elementem konfiguracji wielu kontener\u00f3w. W&nbsp;tym wpisie zostanie przedstawiony spos\u00f3b konfiguracji kontenera postgres za pomoc\u0105 zmiennych \u015brodowiskowych.<\/p>\n\n\n\n<p><em>Ten wpis jest cz\u0119\u015bci\u0105 serii wpis\u00f3w o Dockerze. Je\u017celi jakie\u015b poj\u0119cie jest u\u017cywane bez wyja\u015bnienia to prawdopodobnie zosta\u0142o wprowadzone w&nbsp;jednym z wcze\u015bniejszych wpis\u00f3w.<\/em><\/p>\n\n\n\n<p>* Zach\u0119camy r\u00f3wnie\u017c do&nbsp;<strong>zapoznania si\u0119 z od\u015bwie\u017conymi w grudniu 2021 i styczniu 2022 artyku\u0142ami nt. Dockera<\/strong>, kt\u00f3re znajdziecie pod tym wpisem.<\/p>\n\n\n\n<p>W poprzednich cz\u0119\u015bciach serii o Dockerze kilkukrotnie korzystali\u015bmy z&nbsp;kontenera serwera bazy danych postgres, zawsze loguj\u0105c si\u0119 do niej za pomoc\u0105 domy\u015blnego u\u017cytkownika. Mogliby\u015bmy stworzy\u0107 w\u0142asnego u\u017cytkownika, jego baz\u0119 danych i&nbsp;nada\u0107 mu odpowiednie uprawnienia za pomoc\u0105 kilku polece\u0144 wywo\u0142anych na kontenerze, ale mo\u017cna to zrobi\u0107 du\u017co pro\u015bciej za pomoc\u0105 zmiennych \u015brodowiskowych.<\/p>\n\n\n\n<p>Dost\u0119pne zmienne \u015brodowiskowe s\u0105 opisane na <a href=\"https:\/\/hub.docker.com\/_\/postgres\/\" rel=\"nofollow\" >stronie<\/a> obrazu postgres. Konfigurowanie kontener\u00f3w za pomoc\u0105 zmiennych \u015brodowiskowych jest cz\u0119sto stosowana praktyk\u0105 i nie ogranicza si\u0119 tylko do kontener\u00f3w obrazu postgres. Do ustawiania zmiennych \u015brodowiskowych w&nbsp;kontenerze s\u0142u\u017cy opcja <code>-e<\/code> w&nbsp;poleceniu <code>docker run<\/code>.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker run -e &#x5B;nazwa]:&#x5B;warto\u015b\u0107] &#x5B;nazwa obrazu]\n<\/pre><\/div>\n\n\n<p>Uruchommy kontener obrazu postgres, kt\u00f3ry b\u0119dzie tworzy\u0142 u\u017cytkownika o&nbsp;zadanych: nazwie, ha\u015ble i&nbsp;nazwie bazy danych. Wykorzystamy do tego nast\u0119puj\u0105ce zmienne \u015brodowiskowe:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>POSTGRES_USER,<\/li>\n\n\n\n<li>POSTGRES_PASSWORD,<\/li>\n\n\n\n<li>POSTGRES_DB.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\ndocker run -d -p 6543:5432 -e POSTGRES_USER=docker_user -e\nPOSTGRES_PASSWORD=docker_pass -e POSTGRES_DB=docker_db postgres\n<\/pre><\/div>\n\n\n<p>Powinni\u015bmy by\u0107 w stanie otworzy\u0107 interaktywny terminal postgresa za pomoc\u0105 polecenia:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\npsql -h localhost -p 6543 -d docker_db -U docker_user --password\n<\/pre><\/div>\n\n\n<p>lub je\u017celi nie chcemy podawa\u0107 has\u0142a osobno:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; gutter: false; title: ; notranslate\" title=\"\">\nPGPASSWORD=&quot;docker_pass&quot; psql -h localhost -p 6543 -d docker_db -U docker_user\n<\/pre><\/div>\n\n\n<p>Proces przetwarzania zmiennych \u015brodowiskowych podczas tworzenia kontenera mo\u017cna prze\u015bledzi\u0107 czytaj\u0105c skrypt <a href=\"https:\/\/github.com\/docker-library\/postgres\/blob\/2c72165e4f9dc66a61998111f69b5eba0b6b71f4\/9.5\/docker-entrypoint.sh\" target=\"_blank\" rel=\"noopener\" rel=\"nofollow\" >entrypoint.sh<\/a> wykorzystywany przez obraz postgres. Jest to jednak temat zwi\u0105zany z&nbsp;budowaniem w\u0142asnych obraz\u00f3w i&nbsp;powinien zosta\u0107 om\u00f3wiony w&nbsp;osobnym wpisie.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">* Zaktualizowane w 2021 i 2022 artyku\u0142y nt. Dockera<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-dla-programistow-co-to-jest\/?category=development-na-twardo&amp;tag=devops,docker,kontener\" target=\"_blank\" rel=\"noopener\">Docker dla programist\u00f3w: co to jest?<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-dla-programistow-instalacja-i-budowanie-pierwszego-srodowiska\/?category=development-na-twardo&amp;tag=devops,docker,postgresql\" target=\"_blank\" rel=\"noopener\">Docker dla programist\u00f3w \u2013 budowa pierwszego \u015brodowiska. Cz\u0119\u015b\u0107 I<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-dla-programistow-budowa-srodowiska-rozwojowego-cz-2\/?category=development-na-twardo&amp;tag=camunda,devops,docker\" target=\"_blank\" rel=\"noopener\">Docker dla programist\u00f3w \u2013 budowa \u015brodowiska rozwojowego. Cz\u0119\u015b\u0107 II<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-dla-programistow-dystrybucja-aplikacji-cz-3\/?category=development-na-twardo&amp;tag=devops,docker,docker-maven-plugin\" target=\"_blank\" rel=\"noopener\">Docker dla programist\u00f3w \u2013 dystrybucja aplikacji&nbsp;<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Spis wpis\u00f3w w serii<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-obraz-podstawowe-operacje\/?category=development-na-twardo&amp;tag=docker,obraz\" target=\"_blank\" rel=\"noopener\">Obraz: podstawowe operacje<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-podstawowe-operacje\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: podstawowe operacje<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-polecenia\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: polecenia<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-strumienie-wewy-i-przegladanie-plikow\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: strumienie we\/wy i przegl\u0105danie plik\u00f3w<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-udostepnianie-portow\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: udost\u0119pnianie port\u00f3w<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-wspoldzielenie-plikow\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: wsp\u00f3\u0142dzielenie plik\u00f3w<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/docker-kontener-zmienne-srodowiskowe\/?category=development-na-twardo&amp;tag=docker,kontener\" target=\"_blank\" rel=\"noopener\">Kontener: zmienne \u015brodowiskowe<\/a><\/li>\n<\/ul>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;1626&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;9&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;4&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;4\\\/5 ( votes: 9)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Docker: kontener, zmienne \u015brodowiskowe&quot;,&quot;width&quot;:&quot;110.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 110.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            4\/5 ( votes: 9)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tworz\u0105c kontener mo\u017cemy okre\u015bli\u0107 dost\u0119pne w&nbsp;nim zmienne \u015brodowiskowe. Ustawianie zmiennych \u015brodowiskowych jest istotnym elementem konfiguracji wielu kontener\u00f3w. W&nbsp;tym wpisie zostanie &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/docker-kontener-zmienne-srodowiskowe\/\">Continued<\/a><\/p>\n","protected":false},"author":61,"featured_media":15415,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":1,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[153,224],"class_list":["post-1626","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-docker","tag-kontener"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2016\/02\/25_docker_8-1.jpg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1626"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/61"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=1626"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1626\/revisions"}],"predecessor-version":[{"id":22182,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/1626\/revisions\/22182"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/15415"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=1626"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=1626"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=1626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}