add change-timezone-in-docker.md

This commit is contained in:
2019-05-21 17:44:34 +08:00
parent 5e7aa9a70f
commit 0e963bd7cf
87 changed files with 2482 additions and 940 deletions

View File

@@ -0,0 +1,520 @@
<!doctype html>
<html class="no-js" lang="tw">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Eric Chang">
<meta name="description" content="Whats the Worst That Could Happen?">
<meta name="keywords" content="linux,blog,responsive,search,font awesome,pages,posts,multilingual,highlight.js,syntax highlighting,premium,shortcuts">
<meta name="generator" content="Hugo 0.50" />
<title> [筆記] 修改 docker 容器內的時區 - Change Timezone in Docker | MCの飄狂山莊㊣</title>
<meta name="description" content="[筆記] 修改 docker 容器內的時區 - Change Timezone in Docker - Whats the Worst That Could Happen?">
<meta itemprop="name" content="[筆記] 修改 docker 容器內的時區 - Change Timezone in Docker">
<meta itemprop="description" content="[筆記] 修改 docker 容器內的時區 - Change Timezone in Docker - Whats the Worst That Could Happen?">
<meta property="og:title" content="[筆記] 修改 docker 容器內的時區 - Change Timezone in Docker">
<meta property="og:description" content="[筆記] 修改 docker 容器內的時區 - Change Timezone in Docker - Whats the Worst That Could Happen?">
<meta property="og:image" content="https://h.cowbay.org/images/post-default-3.jpg">
<meta property="og:url" content="https://h.cowbay.org/post/change-timezone-in-docker/">
<meta property="og:site_name" content="MCの飄狂山莊㊣">
<meta property="og:type" content="article">
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-16x16.png" sizes="16x16">
<link rel="stylesheet" href="https://h.cowbay.org/sass/combined.min.a89dfa577f701bffe9659f476ef61241cb2a3452b913e793463b0074a10c0a59.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body class="bilberry-hugo-theme">
<nav class="permanentTopNav">
<div class="container">
<ul class="topnav">
</ul>
<div id="search-box" class="search">
<i class="fa fa-search"></i>
<input id="search" type="text" placeholder="">
</div>
</div>
</nav>
<header>
<div class="container">
<div class="logo">
<a href="/" class="logo">
<img src="https://www.gravatar.com/avatar/e4eb1f8e016ffb73e9889f87d16e15f0?d=mm&size=200" alt="">
<span class="overlay"><i class="fa fa-home"></i></span>
</a>
</div>
<div class="titles">
<h3 class="title"><a href="/">MCの飄狂山莊㊣</a></h3>
<span class="subtitle">Whats the Worst That Could Happen?</span>
</div>
<div class="toggler permanentTopNav">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
</div>
</header>
<div class="main container">
<div class="article-wrapper u-cf single">
<a class="bubble" href="/post/change-timezone-in-docker/">
<i class="fa fa-fw fa-pencil"></i>
</a>
<article class="default article">
<div class="featured-image">
<a href="/post/change-timezone-in-docker/">
<img src="/images/post-default-3.jpg" alt="">
</a>
</div>
<div class="content">
<h3><a href="/post/change-timezone-in-docker/">[筆記] 修改 docker 容器內的時區 - Change Timezone in Docker</a></h3>
<div class="meta">
<span class="date moment">2019-05-21</span>
<span class="categories">
<a href="/categories/%E7%AD%86%E8%A8%98">筆記</a>
</span>
<span class="author"><a href="/author/eric-chang">Eric Chang</a></span>
</div>
<p>最近一直在玩一些docker不過老是會碰到歪果扔寫的東西時區都不一致</p>
<p>有的用 UTC有的用localtime就是沒碰到用 Asia/Taipei 的&hellip;.</p>
<p>
之前因為沒有要上線,所以這個問題可以當烏龜忽略過去</p>
<p>不過測試了一陣子的librenms 打算正式上線了</p>
<p>又不想重作一次,導致累積滿久的圖表資料都消失</p>
<p>所以開始找尋方法來面對這個問題</p>
<p>本來看了這篇 <a href="https://www.arthurtoday.com/2016/07/how-to-setup-docker-container-timezone-host.html">https://www.arthurtoday.com/2016/07/how-to-setup-docker-container-timezone-host.html</a></p>
<p>想說來試試看好了</p>
<p>不過呢一開始依照這篇的說明在docker-compose.yml 內加入</p>
<pre><code>web:
image: jarischaefer/docker-librenms
hostname: librenms
ports:
- &quot;8001:80&quot;
- &quot;44301:443&quot;
volumes:
- /etc/hosts:/etc/hosts
- /etc/localtime:/etc/localtime:ro
environment:
- TZ=&quot;Asia/Taipei&quot;
</code></pre>
<p>重起之後沒作用 0rz</p>
<p>於是我又加入了</p>
<pre><code> volumes:
- /etc/hosts:/etc/hosts
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
</code></pre>
<p>結果啟動直接報錯誤了..</p>
<p>看一下 log</p>
<pre><code>May 21 09:09:12 bbs012 syslog-ng[12]: syslog-ng starting up; version='3.13.2'
*** Running /etc/my_init.d/librenms_100_cron...
*** Running /etc/my_init.d/librenms_101_ssl...
*** Running /etc/my_init.d/librenms_102_ipv6...
*** Running /etc/my_init.d/librenms_103_timezone...
/etc/my_init.d/librenms_103_timezone: line 4: /etc/timezone: Read-only file system
*** /etc/my_init.d/librenms_103_timezone failed with status 1
*** Killing all processes...
</code></pre>
<p>所以這個檔案不能改成 ro 不過如果不能唯獨那啟動docker的時候應該會被蓋掉吧</p>
<p>先來看一下那個 librenms_103_timezone 在幹什麼好了</p>
<pre><code>docker exec -it librenms_web_1 cat /etc/my_init.d/librenms_103_timezone
#!/bin/bash -e
if [ -n &quot;$TZ&quot; ]; then
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime &amp;&amp; echo $TZ &gt; /etc/timezone
if [ ! -f /etc/php/7.3/cli/conf.d/100-timezone.ini ]; then
echo &quot;date.timezone=$TZ&quot; &gt; /etc/php/7.3/cli/conf.d/100-timezone.ini
fi
if [ ! -f /etc/php/7.3/fpm/conf.d/100-timezone.ini ]; then
echo &quot;date.timezone=$TZ&quot; &gt; /etc/php/7.3/fpm/conf.d/100-timezone.ini
fi
fi
2019-05-21 17:33:46 [mini@s013 librenms]$
</code></pre>
<p>OK ,這裡的確是用傳進來的 $TZ 在設定timezone 沒錯</p>
<p>可是我前面已經改過 docker-compose.yml</p>
<p>有把 TZ帶進來了啊再來確認一下</p>
<pre><code>docker exec -it librenms_web_1 cat /etc/timezone
&quot;Asia/Taipei&quot;
</code></pre>
<p>咦,沒錯啊? 欸斗,等等,那兩個 &ldquo;&rdquo; 有點刺眼&hellip;</p>
<p>跟本機的比對一下看看</p>
<pre><code>2019-05-21 17:36:20 [mini@s013 librenms]$ docker exec -it librenms_web_1 cat /etc/timezone
&quot;Asia/Taipei&quot;
2019-05-21 17:36:23 [mini@s013 librenms]$ cat /etc/timezone
Asia/Taipei
2019-05-21 17:37:10 [mini@s013 librenms]$
</code></pre>
<p>嗯,的確,本機的格式的確不包含那兩個 &ldquo;&rdquo;</p>
<p>那就改掉再來試試看吧&hellip;改成底下這樣</p>
<pre><code> environment:
- TZ=Asia/Taipei
</code></pre>
<p>重起 docker ,然後確認時間看看</p>
<pre><code>2019-05-21 17:39:00 [mini@s013 librenms]$ docker-compose down;docker-compose up -d
Stopping librenms_web_1 ... done
Stopping librenms_mysql_1 ... done
Removing librenms_web_1 ... done
Removing librenms_mysql_1 ... done
Removing network librenms_default
Creating network &quot;librenms_default&quot; with the default driver
Creating librenms_mysql_1 ... done
Creating librenms_web_1 ... done
2019-05-21 17:39:22 [mini@s013 librenms]$ docker exec -it librenms_web_1 cat /etc/timezone
Asia/Taipei
2019-05-21 17:39:42 [mini@s013 librenms]$ docker exec -it librenms_web_1 date
Tue May 21 17:39:48 CST 2019
2019-05-21 17:39:48 [mini@s013 librenms]$
</code></pre>
<p>OK ,果然沒有問題了!</p>
<p>雖然是小小的&rdquo;&rdquo; ,還是要特別注意啊!</p>
</div>
<div class="footer">
<div class="tags">
<i class="fa fa-tags"></i>
<div class="links">
<a href="/tags/docker">docker</a>
<a href="/tags/timezone">timezone</a>
</div>
</div>
</div>
</article>
</div>
<div id="disqus_thread"></div>
<script type="application/javascript">
var disqus_config = function () {
};
(function() {
if (["localhost", "127.0.0.1"].indexOf(window.location.hostname) != -1) {
document.getElementById('disqus_thread').innerHTML = 'Disqus comments not available by default when the website is previewed locally.';
return;
}
var d = document, s = d.createElement('script'); s.async = true;
s.src = '//' + "h-cowbay-org-1" + '.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
<footer>
<div class="container">
<div class="recent-posts">
<strong></strong>
<ul>
<li>
<a href="/post/change-timezone-in-docker/">[筆記] 修改 docker 容器內的時區 - Change Timezone in Docker</a>
</li>
<li>
<a href="/post/transfer-file-content-using-xclip-in-terminal/">Transfer File Content Using Xclip in Terminal</a>
</li>
<li>
<a href="/post/inx-collect-detail-hardware-info/">[筆記] inxi 蒐集詳盡的硬體資訊 / inxi Collect Detail Hardware Info</a>
</li>
<li>
<a href="/post/log-all-bash-commands/">[筆記] 紀錄所有下過的指令、時間 / Log All commands with timestamp</a>
</li>
<li>
<a href="/post/fix-zpool-device-busy-using-dmsetup/">[筆記] 解決無法建立zpool 的錯誤 / Fix Zpool Device Busy Using dmsetup</a>
</li>
<li>
<a href="/post/transfer-cent62-using-rsync/">[筆記] 用rsync 移轉 centos 6.2的老機器 Transfer Cent6.2 using rsync</a>
</li>
<li>
<a href="/post/command_to_test_main_ssl/">[筆記] 測試mail server 的SSL憑證的指令 Command to test mailserver SSL</a>
</li>
</ul>
</div>
<div class="categories">
<a href="/categories/"><strong></strong></a>
<ul>
<li>
<a href="/categories/%E7%AD%86%E8%A8%98">筆記 (19)</a>
</li>
<li>
<a href="/categories/linux">Linux (1)</a>
</li>
<li>
<a href="/categories/ps">Ps (1)</a>
</li>
<li>
<a href="/categories/%E7%A2%8E%E5%BF%B5">碎念 (1)</a>
</li>
<li>
<a href="/categories/%E7%BE%A4%E6%9A%89">群暉 (1)</a>
</li>
</ul>
</div>
<div class="right">
<div class="external-profiles">
<strong></strong>
<a href="https://www.facebook.com/mariahchang" target="_blank"><i class="fa fa-facebook-adblock-proof"></i></a>
<a href="https://twitter.com/changchichung" target="_blank"><i class="fa fa-twitter-adblock-proof"></i></a>
<a href="https://github.com/changchichung" target="_blank"><i class="fa fa-github"></i></a>
</div>
</div>
</div>
</footer>
<div class="credits">
<div class="container">
<div class="copyright">
<a href="https://github.com/Lednerb" target="_blank">
&copy;
2017
by Lednerb
</a>
</div>
<div class="author">
<a href="https://github.com/Lednerb/bilberry-hugo-theme" target="_blank">Bilberry Hugo Theme</a>
</div>
</div>
</div>
<script type="application/javascript">
var doNotTrack = false;
if (!doNotTrack) {
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-138954876-1', 'auto');
ga('send', 'pageview');
}
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<script type="text/javascript" src="https://h.cowbay.org/js/externalDependencies.39c47e10e241eae2947b3fe21809c572.js" integrity="md5-OcR&#43;EOJB6uKUez/iGAnFcg=="></script>
<script type="text/javascript" src="https://h.cowbay.org/js/theme.ff50ae6dc1bfc220b23bf69dbb41b54e.js" integrity="md5-/1CubcG/wiCyO/adu0G1Tg=="></script>
<script>
$(".moment").each(function() {
$(this).text(
moment( $(this).text() )
.locale( "tw" )
.format('LL')
);
});
$(".footnote-return sup").html("");
</script>
<script>
var client = algoliasearch("2XL0P8XDCY", "4ef65b37b627bb886b46c34a10e63aa6");
var index = client.initIndex("h_cowbay_org");
$('#search').autocomplete({ hint: false, autoselect: true, debug: false },
[
{
source: $.fn.autocomplete.sources.hits(index, { hitsPerPage: 10 }),
displayKey: function(suggestion) {
return suggestion.title || suggestion.author
},
templates: {
suggestion: function(suggestion) {
return "<span class='entry " + suggestion.type + "'>"
+ "<span class='title'>" + suggestion.title + "</span>"
+ "<span class='fa fa-fw " + suggestion.iconClass + "'></span>"
+ "</span>"
;
},
empty: function() {
return "<span class='empty'></span>"
},
footer: function() {
return '<div class="branding">Powered by <img src="https:\/\/h.cowbay.org\/dist\/algolia-logo-light.svg" /></div>'
}
},
}
])
.on('autocomplete:selected', function(event, suggestion, dataset) {
window.location = (suggestion.url);
})
.keypress(function (event, suggestion) {
if (event.which == 13) {
window.location = (suggestion.url);
}
});
</script>
</body>
</html>