docker alpine 容器 时区    2017-01-11 09:51:41    1018

在使用docker的时候,由于很多基础linux镜像都比较大,alpine这个仅仅几兆的linux基础镜像受到了很多人喜欢,笔者也不例外,可是由于alpine中的一些配置及命令与常见的centos等系统在一些方面不一样,下面来看看时区问题是如何解决的:

原因:alpine中,原生是不带时区相关的命令及文件的,需要安装额外的包来支持,然后需要将时区文件内容替换为localtime文件

解决办法

建议打造自己的alpine基础镜像,如下是我的alpine的Dockerfile:

  1. FROM alpine:3.4
  2. MAINTAINER firewarm LightingLiu <liuyg@liuyingguang.cn>
  3. # Install root filesystem
  4. ADD ./rootfs /
  5. # Install base packages
  6. RUN apk update && apk add curl bash tree tzdata \
  7. && cp -r -f /usr/share/zoneinfo/Hongkong /etc/localtime \
  8. && echo -ne "Alpine Linux 3.4 image. (`uname -rsv`)\n" >> /root/.built
  9. # Define bash as default command
  10. CMD ["/bin/bash"]

当这个镜像完成以后,不需要配置任何环境变量即可使用京八区的时区及时间

参考的源代码

  1. docker run -it --rm alpine /bin/sh
  2. / # date
  3. Sun May 8 20:46:18 UTC 2016
  4. / # apk add -U tzdata
  5. fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/main/x86_64/APKINDEX.tar.gz
  6. fetch http://dl-cdn.alpinelinux.org/alpine/v3.3/comm
kettle mongo mysql OpenBI    2017-01-11 09:51:41    869

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。作为一个数据抽取工具,在建立数据仓库的过程中,免不了需要从不同的数据源中抽取到集中的数据仓库中,下面就拿mongodb抽取到mysql为例,简述抽取数据的步骤:

  1. 新建“转换”:test
  2. 在test中新建“MongoDB Input”,填写数据源信息等,其中有一点比较重要,fields标签页中,取消选中“Output single JSON field”。如下图:
    image
  3. 在test中新建“字段选择”,选择要转换的字段,如下图
    image
  4. 新建“插入/更新”,选择mysql的数据源、表等,选择字段对应关系
    image
  5. 然后依次画上相关的连线即可
    image
  6. 然后执行处理即可
48/48