{"id":47213,"date":"2023-12-02T05:58:25","date_gmt":"2023-08-11T06:46:21","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/"},"modified":"2024-05-04T11:46:00","modified_gmt":"2024-05-04T03:46:00","slug":"%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/","title":{"rendered":"\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3"},"content":{"rendered":"<h1>\u7ecf\u7eac<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4eca\u6d41\u884c\u308a\u306eRancher\u3092\u4f7f\u3063\u3066docker\u30b3\u30f3\u30c6\u30ca\u3092\u7ba1\u7406\u3057\u3066\u3044\u307e\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Rancher\u306b\u306f\u300cCATALOG\u300d\u3068\u3044\u3046docker-compose.yml\u306e\u30b5\u30f3\u30d7\u30eb\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u308c\u3092\u5143\u306b\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u307e\u305f\u3069\u3093\u306a\u30b5\u30fc\u30d3\u30b9\u304b\u3044\u3064\u3082\u6c17\u306b\u306a\u3063\u3066\u305f\u306e\u3067\u3001\u3069\u3046\u305b\u306a\u3089\u4f7f\u3044\u3053\u306a\u3057\u305f\u3044\u306e\u3067\u5099\u5fd8\u9332\u3068\u3057\u3066<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u8272\u3005\u306a\u30b5\u30fc\u30d3\u30b9\u306edocker-compose\u304c\u3042\u308b\u306e\u3067\u53c2\u8003\u306b\u306a\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u307e\u305f\u3001glusterFS\u306e\u3088\u3046\u306b\u6d88\u3048\u3066\u3057\u307e\u3046\u524d\u306e\u30e1\u30e2\u3068\u3057\u3066\u3082<\/ul>\n<h1>\u7528\u6cd5<\/h1>\n<ul class=\"post-ul\">${xxx}\u306f\u9069\u5b9c\u3001\u5024\u3092\u4ee3\u5165\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/ul>\n<h1>\u7279\u522b\u63a8\u8350<\/h1>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Consul<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Elasticsearch<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Hadoop + Yarn<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Datadog<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">wordpress<\/ul>\n<h1>Docker Compose \u793a\u4f8b<\/h1>\n<h2>\u963f\u5c14\u5f17\u96f7\u65af\u79d1<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/8-0.png\" alt=\"community-alfresco_1.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30d5\u30a1\u30a4\u30eb\u5185\u5168\u6587\u691c\u7d22\u30fb\u30bf\u30b0\u4ed8\u3051\u3067\u30d5\u30a1\u30a4\u30eb\u304c\u975e\u5e38\u306b\u63a2\u3057\u3084\u3059\u3044<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u53c2\u7167\/\u66f4\u65b0\u5c65\u6b74\u304c\u53ef\u8996\u5316\u3055\u308c\u3066\u30c1\u30fc\u30e0\u30b3\u30e9\u30dc\u30ec\u30fc\u30b7\u30e7\u30f3\u3057\u3084\u3059\u304f\u306a\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u5168\u6587\u691c\u7d22\u3067\u304d\u308b\u30d5\u30a1\u30a4\u30eb\u30b5\u30fc\u30d0\u3068\u3057\u3066\u306eAlfresco<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">alfresco<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">CIFS_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">false'<\/span>\r\n    <span class=\"na\">FTP_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">false'<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">webcenter\/rancher-alfresco:v5.1-201605-1<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">postgres:db<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">8080:8080\/tcp<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">alfresco-data<\/span>\r\n<span class=\"na\">alfresco-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">alpine<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/alfresco\/alf_data<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n<span class=\"na\">postgres<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">PGDATA<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/var\/lib\/postgresql\/data\/pgdata<\/span>\r\n    <span class=\"na\">POSTGRES_DB<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${database_name}<\/span>\r\n    <span class=\"na\">POSTGRES_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${database_password}<\/span>\r\n    <span class=\"na\">POSTGRES_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${database_user}<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres:9.4<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">postgres-data<\/span>\r\n<span class=\"na\">postgres-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">alpine<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/postgresql\/data\/pgdata<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u963f\u5e15\u5947\u5361\u592b\u5361<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/12-0.jpeg\" alt=\"community-kafka.jpg\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">2011\u5e74\u306bLinkedIn\u304b\u3089\u516c\u958b\u3055\u308c\u305f\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u5206\u6563\u30e1\u30c3\u30bb\u30fc\u30b8\u30f3\u30b0\u30b7\u30b9\u30c6\u30e0\u3067\u3042\u308b\uff0eKafka\u306f\u30a6\u30a7\u30d6\u30b5\u30fc\u30d3\u30b9\u306a\u3069\u304b\u3089\u767a\u305b\u3089\u308c\u308b\u5927\u5bb9\u91cf\u306e\u30c7\u30fc\u30bf\uff08e.g., \u30ed\u30b0\u3084\u30a4\u30d9\u30f3\u30c8\uff09\u3092\u9ad8\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\/\u4f4e\u30ec\u30a4\u30c6\u30f3\u30b7\u306b\u53ce\u96c6\/\u914d\u4fe1\u3059\u308b\u3053\u3068\u3092\u76ee\u7684\u306b\u958b\u767a\u3055\u308c\u3066\u3044\u308b\uff0e<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Fast \u3068\u306b\u304b\u304f\u5927\u91cf\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Scalable Kafka\u306f\u30b7\u30f3\u30b0\u30eb\u30af\u30e9\u30b9\u30bf\u3067\u5927\u898f\u6a21\u306a\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u30c0\u30a6\u30f3\u30bf\u30a4\u30e0\u306a\u3057\u3067Elastic\u304b\u3064\u900f\u904e\u7684\u306b\u30b9\u30b1\u30fc\u30eb\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Durable \u30e1\u30c3\u30bb\u30fc\u30b8\u306f\u30c7\u30a3\u30b9\u30af\u306b\u30d5\u30a1\u30a4\u30eb\u3068\u3057\u3066\u4fdd\u5b58\u3055\u308c\uff0c\u304b\u3064\u30af\u30e9\u30b9\u30bf\u5185\u3067\u30ec\u30d7\u30ea\u30ab\u304c\u4f5c\u6210\u3055\u308c\u308b\u305f\u3081\u30c7\u30fc\u30bf\u306e\u640d\u5931\u3092\u9632\u3052\u308b\uff08\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u5f71\u97ff\u306a\u304fTB\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6271\u3046\u3053\u3068\u304c\u3067\u304d\u308b\uff09<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Distributed by Design \u30af\u30e9\u30b9\u30bf\u306f\u8010\u969c\u5bb3\u6027\u306e\u3042\u308b\u8a2d\u8a08\u306b\u306a\u3063\u3066\u3044\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Apache Kafka\u306b\u5165\u9580\u3057\u305f<\/ul>\n<pre class=\"post-pre\"><code>\r\n<span class=\"na\">broker<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/alpine-kafka:0.10.0.1-1<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">broker-volume<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">broker-conf<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">JVMFLAGS=-Xmx${kafka_mem}m -Xms${kafka_mem}m<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CONFD_INTERVAL=${kafka_interval}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ZK_SERVICE=${zk_link}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">KAFKA_DELETE_TOPICS=${kafka_delete_topics}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">KAFKA_LOG_DIRS=${kafka_log_dir}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">KAFKA_LOG_RETENTION_HOURS=${kafka_log_retention}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">KAFKA_NUM_PARTITIONS=${kafka_num_partitions}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ADVERTISE_PUB_IP=${kafka_pub_ip}<\/span>\r\n  <span class=\"na\">external_links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${zk_link}:zk<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span> \r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">broker-volume, broker-conf<\/span>\r\n<span class=\"na\">broker-conf<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/rancher-kafka:0.10.0.0-3<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/tools<\/span>\r\n<span class=\"na\">broker-volume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SERVICE_UID=10003<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SERVICE_GID=10003<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SERVICE_VOLUME=${kafka_log_dir}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${kafka_log_dir}<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">local<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/alpine-volume:0.0.2-1<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Apache Zookeeper is an open-source, highly reliable, and distributed coordination service originally developed by Apache Software Foundation.<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/16-0.png\" alt=\"community-zookeeper.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5206\u6563\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5411\u3051\u306e\u9ad8\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306a\u5354\u8abf\u30b5\u30fc\u30d3\u30b9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5206\u6563\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3059\u308b\u4e0a\u3067\u5fc5\u8981\u3068\u306a\u308b,\u540c\u671f, \u8a2d\u5b9a\u7ba1\u7406, \u30b0\u30eb\u30fc\u30d4\u30f3\u30b0, \u540d\u524d\u7ba1\u7406, \u306a\u3069\u306e\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u30b5\u30fc\u30d3\u30b9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">zookeeper \u3068\u306f<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">zk<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/alpine-zk:3.4.9<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">zk-volume<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">zk-conf<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">JVMFLAGS=-Xmx${zk_mem}m -Xms${zk_mem}m<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ZK_DATA_DIR=${zk_data_dir}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ZK_INIT_LIMIT=${zk_init_limit}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ZK_MAX_CLIENT_CXNS=${zk_max_client_cxns}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ZK_SYNC_LIMIT=${zk_sync_limit}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ZK_TICK_TIME=${zk_tick_time}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span> \r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">zk-volume, zk-conf<\/span>\r\n<span class=\"na\">zk-conf<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/rancher-zk:3.4.8-5<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/tools<\/span>\r\n<span class=\"na\">zk-volume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SERVICE_UID=10002<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SERVICE_GID=10002<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SERVICE_VOLUME=${zk_data_dir}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${zk_data_dir}<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">local<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/alpine-volume:0.0.2-1<\/span>\r\n<\/code><\/pre>\n<h2>asciinema.org \u7684\u4e2d\u6587\u7ffb\u8bd1\u4e3a &#8220;\u7ec8\u7aef\u5f55\u5c4f.org&#8221;<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/20-0.jpeg\" alt=\"community-asciinema-org.jpg\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Asciinema\u306f\u7aef\u672b\u306e\u64cd\u4f5c\u3092\u5171\u6709\u3067\u304d\u308b\u30b5\u30fc\u30d3\u30b9\u3067\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u52d5\u753b\u306e\u30b7\u30fc\u30af\u304c\u3067\u304d\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u52d5\u753b\u3092\u30c6\u30ad\u30b9\u30c8\u3068\u3057\u3066\u30b3\u30d4\u30fc\u3067\u304d\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5c0e\u5165\u304c\u7c21\u5358<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u9332\u753b\u304c\u7c21\u5358<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Asciinema\u3067\u83ef\u9e97\u306b\u7aef\u672b\u64cd\u4f5c\u3092\u5171\u6709\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">asciinema-org<\/span><span class=\"pi\">:<\/span>  \r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">asciinema\/asciinema.org:latest'<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">postgres<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">redis<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${port}:3000<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${host}:${port}<\/span>\r\n    <span class=\"na\">DATABASE_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgresql:\/\/postgres:${postgres_password}@postgres\/asciinema<\/span>\r\n    <span class=\"na\">REDIS_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis:\/\/redis:6379<\/span>\r\n    <span class=\"na\">RAILS_ENV<\/span><span class=\"pi\">:<\/span> <span class=\"s\">development<\/span>\r\n\r\n<span class=\"na\">postgres<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">postgres:latest'<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">5432:5432<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">POSTGRES_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_password}<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres<\/span>\r\n\r\n<span class=\"na\">redis<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">redis:latest'<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">6379:6379<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis<\/span>\r\n\r\n<span class=\"na\">sidekiq<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">asciinema\/asciinema.org:latest'<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">postgres<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">redis<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">ruby<\/span> <span class=\"s\">start_sidekiq.rb'<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${host}:${port}<\/span>\r\n    <span class=\"na\">DATABASE_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgresql:\/\/postgres:${postgres_password}@postgres\/asciinema<\/span>\r\n    <span class=\"na\">REDIS_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis:\/\/redis:6379<\/span>\r\n    <span class=\"na\">RAILS_ENV<\/span><span class=\"pi\">:<\/span> <span class=\"s\">development<\/span>\r\n\r\n\r\n<\/code><\/pre>\n<h2>Bind9 \u57df\u540d\u670d\u52a1\u5668<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/24-0.png\" alt=\"community-infra-bind9.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">DNS \u3092\u5b9f\u88c5\u3059\u308b\u305f\u3081\u306e\u30b7\u30b9\u30c6\u30e0\u306e\u4e00\u3064\u3067\u3042\u308b BIND (Berkeley Internet Name Domain)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">BIND\u306f\u3001\u30b5\u30fc\u30d0(named)\u3001 \u30ea\u30be\u30eb\u30d0(libresolv.a)\u3001\u7ba1\u7406\u7528\u30d7\u30ed\u30b0\u30e9\u30e0(nslookup, dig) \u306a\u3069\u304b\u3089\u69cb\u6210\u3055\u308c\u308b\u4e00\u9023\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u7fa4\u3067\u3059\u3002 \u73fe\u5728\u306f\u3001Internet Software Consortium \u306b\u3088\u3063\u3066\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">DNS\u30b5\u30fc\u30d0\u69cb\u7bc9\u624b\u9806(\u30bd\u30fc\u30b9\u304b\u3089BIND 9.10.1-P1\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb + \u5185\u90e8\u5411\u3051\u6a29\u5a01DNS\u30b5\u30fc\u30d0\u69cb\u7bc9)<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">bind9<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">digitallumberjack\/docker-bind9:v1.2.0<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span> \r\n   <span class=\"pi\">-<\/span> <span class=\"s\">${BIND9_PORT}:53\/tcp<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">${BIND9_PORT}:53\/udp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">BIND9_ROOTDOMAIN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${BIND9_ROOTDOMAIN}<\/span>\r\n    <span class=\"na\">BIND9_KEYNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${BIND9_KEYNAME}<\/span>\r\n    <span class=\"na\">BIND9_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${BIND9_KEY}<\/span>\r\n    <span class=\"na\">BIND9_FORWARDERS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${BIND9_FORWARDERS}<\/span>\r\n    <span class=\"na\">RANCHER_ENV<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u4e919<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/28-0.png\" alt=\"community-cloud9.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Cloud9\uff08\u30af\u30e9\u30a6\u30c99\uff09\u3068\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u3084\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306a\u3069\u3092\u30af\u30e9\u30a6\u30c9\u74b0\u5883\u3067\u5229\u7528\u3067\u304d\u308b\u30b5\u30fc\u30d3\u30b9\u3067\u3059\u3002IDE\uff08\u7d71\u5408\u958b\u767a\u74b0\u5883\uff09\u3068\u3057\u3066\u306e\u6a5f\u80fd\u304c\u5145\u5b9f\u3057\u3066\u304a\u308a\u3001GitHub\u3084Heroku\u3068\u3044\u3063\u305f\u4ed6\u306e\u30c4\u30fc\u30eb\u3068\u306e\u9023\u643a\u3082\u30b9\u30e0\u30fc\u30ba\u306b\u884c\u3048\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30d6\u30e9\u30a6\u30b6\u4e0a\u3067\u52d5\u304f\u305f\u3081\u3001PC\u306b\u4f9d\u5b58\u3059\u308b\u3053\u3068\u306a\u304f\u958b\u767a\u74b0\u5883\u3092\u6e96\u5099\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u304c\u5229\u70b9\u3067\u3059\u3002\u307e\u305f\u3001\u7121\u6599\u3067\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3082\u826f\u3055\u306e\u3072\u3068\u3064\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">GitHub\u9023\u643a\u3067Cloud9\u3092\u4f7f\u3046\u306e\u306b\u632b\u6298\u3059\u308b\u307e\u3067\u306e\u6d41\u308c\u3092\u30ad\u30e3\u30d7\u30c1\u30e3\u4ed8\u304d\u3067\u8a73\u3057\u304f\u7d39\u4ecb\uff082016\/08\/10\u8ffd\u8a18\u6709\u308a\uff09<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">cloud9-sdk<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">--listen<\/span> <span class=\"s\">0.0.0.0<\/span> <span class=\"s\">--port<\/span> <span class=\"s\">${cloud9_port}<\/span> <span class=\"s\">-w<\/span> <span class=\"s\">\/workspace<\/span> <span class=\"s\">--collab<\/span> <span class=\"s\">--auth<\/span> <span class=\"s\">${cloud9_user}:${cloud9_pass}\"<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">rawmind\/cloud9-sdk:0.3.0-2\"<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">always\"<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock\"<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/usr\/local\/bin\/docker:\/bin\/docker\"<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/workspace\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">GIT_REPO<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${cloud9_repo}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">traefik.domain<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${cloud9_domain}<\/span>\r\n    <span class=\"s\">traefik.port<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${cloud9_port}<\/span>\r\n    <span class=\"s\">traefik.enable<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${cloud9_publish}<\/span>\r\n\r\n<\/code><\/pre>\n<h2>CloudFlare \u4e91\u5c42<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/32-0.png\" alt=\"community-infra-cloudflare.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CloudFlare\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u4e0a\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\u53ef\u80fd\u306a\u30d5\u30a1\u30a4\u30eb\uff08\u753b\u50cf \/ CSS \/ js\u30d5\u30a1\u30a4\u30eb\u306a\u3069\uff09\u3092\u69cb\u7bc9\u3057\u3066\u3044\u308b\u4e16\u754c\u4e2d\u306e\u8907\u6570\u306e\u30b5\u30fc\u30d0\u30fc\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u30b7\u30b9\u30c6\u30e0\u3002\u3053\u3046\u3059\u308b\u3053\u3068\u3067\u30b5\u30a4\u30c8\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u3092\u5927\u5e45\u306b\u5411\u4e0a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u30b5\u30a4\u30c8\u306e\u8868\u793a\u901f\u5ea6\u3092\u9ad8\u901f\u5316\u3059\u308b\u3068\u3044\u3046\u3082\u306e\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">CloudFlare\u5c0e\u5165<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">cloudflare<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/external-dns:v0.6.0<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">-provider=cloudflare<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span> \r\n   <span class=\"pi\">-<\/span> <span class=\"m\">1000<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">CLOUDFLARE_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CLOUDFLARE_EMAIL}<\/span>\r\n    <span class=\"na\">CLOUDFLARE_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CLOUDFLARE_KEY}<\/span>\r\n    <span class=\"na\">ROOT_DOMAIN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOT_DOMAIN}<\/span>\r\n    <span class=\"na\">NAME_TEMPLATE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${NAME_TEMPLATE}<\/span>\r\n    <span class=\"na\">TTL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${TTL}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n    <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">external-dns\"<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Concrete5 \u662f\u4e00\u4e2a\u6613\u4e8e\u4f7f\u7528\u7684\u5185\u5bb9\u7ba1\u7406\u7cfb\u7edf\u3002<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/36-0.png\" alt=\"community-Concrete5.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">concrete5\u3068\u306f\u3001\u30a6\u30a7\u30d6\u30b5\u30fc\u30d0\u30fc\u4e0a\u3067\u3001\u8ab0\u3067\u3082\u7c21\u5358\u3067\u3001\u3057\u304b\u3082\u76f4\u611f\u7684\u306b\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u306e\u904b\u55b6\u7ba1\u7406\u304c\u51fa\u6765\u308b\u3001\u624b\u8efd\u3067\u753b\u671f\u7684\u306aCMS\uff08\u30b3\u30f3\u30c6\u30f3\u30c4\u30fb\u30de\u30cd\u30fc\u30b8\u30e1\u30f3\u30c8\u30fb\u30b7\u30b9\u30c6\u30e0\uff09\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">WordPress\u3067\u4f01\u696d\u30b5\u30a4\u30c8\u3092\u3064\u304f\u308b\u3088\u308a\u3082concrete5\u3068\u3044\u3046CMS\u304c\u9069\u3057\u3066\u3044\u308b\u7406\u7531 | \u682a\u5f0f\u4f1a\u793ebridge<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">CMSMysql<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${root_password}<\/span>\r\n        <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${db_name}<\/span>\r\n        <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${db_username}<\/span>\r\n        <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${db_password}<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${db_data_location}:\/var\/lib\/mysql<\/span>\r\n    <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volume_driver}<\/span>\r\n\r\n<span class=\"na\">CMSConfig<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">opensaas\/concrete5<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CMSMysql:mysql<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${cms_application_data}:\/var\/www\/html\/application<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${cms_packages_data}:\/var\/www\/html\/packages<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n        <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volume_driver}<\/span>\r\n    <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">bash -c \"chown -R www-data. application; chown -R www-data. packages; sleep 2m; php -f concrete\/bin\/concrete5.php c5:install --db-server=mysql --db-username=${db_username} --db-password=${db_password} --db-database=${db_name} --site=${cms_sitename} --admin-email=${cms_admin_email} --admin-password=${cms_admin_password} -n -vvv\"<\/span>\r\n\r\n<span class=\"na\">Concrete5App<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n        <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">CMSConfig<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CMSMysql:mysql<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">opensaas\/concrete5<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${cms_application_data}:\/var\/www\/html\/application<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${cms_packages_data}:\/var\/www\/html\/packages<\/span>\r\n    <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volume_driver}<\/span>\r\n    <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<\/code><\/pre>\n<h2>\u9519\u4f4d<\/h2>\n<p>Note: The Chinese translation provided is a direct paraphrase of &#8220;confluence&#8221; but does not necessarily capture the full range of meanings or contexts that the English word may imply.<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/40-0.png\" alt=\"community-confluence.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Conflunence\u306f\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u4f5c\u6210\u3084\u8b70\u8ad6\u3092\u4e00\u7b87\u6240\u306b\u307e\u3068\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u60c5\u5831\u5171\u6709\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Confluence\u3068\u306f\uff1f<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">slack\u3068\u9023\u643a\u3057\u305f\u3089\u4fbf\u5229\u305d\u3046\u3067\u3059Slack\u3068Confluence\u3092\u9023\u643a\u3059\u308b\u65b9\u6cd5<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">confluence<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sanderkleykens\/confluence:6.0.1<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CATALINA_OPTS=-Xms${heap_size} -Xmx${heap_size} ${jvm_args}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CONFLUENCE_PROXY_PORT=${proxy_port}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CONFLUENCE_PROXY_NAME=${proxy_name}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CONFLUENCE_PROXY_SCHEME=${proxy_scheme}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CONFLUENCE_CONTEXT_PATH=${context_path}<\/span>\r\n  <span class=\"na\">external_links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${database_link}:database<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${confluence_home}:\/var\/atlassian\/confluence<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u9886\u4e8b\u96c6\u7fa4<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/44-0.png\" alt=\"community-consul-registrator.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u8907\u6570\u53f0\u306e\u30b5\u30fc\u30d0\u69cb\u6210\u306b\u3088\u3063\u3066\uff0cWeb\u30b5\u30fc\u30d0\u3067\u3042\u308c\u3070\u901a\u4fe1\u91cf\u3084\u30a2\u30af\u30bb\u30b9\u306e\u8ca0\u8377\u5206\u6563\u3092\u56f3\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3042\u308b\u3044\u306f\uff0c\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3084\u30ad\u30e3\u30c3\u30b7\u30e5\u7528\u306e\u30b5\u30fc\u30d0\u3092\u5197\u9577\u5316\u69cb\u6210\u306b\u3059\u308b\u3053\u3068\u3067\uff0c\u969c\u5bb3\u767a\u751f\u6642\u306b\u304a\u3051\u308b\u30b5\u30fc\u30d3\u30b9\u306e\u7d99\u7d9a\u6027\uff08\u7a3c\u52d5\u6642\u9593\uff09\u3092\u9ad8\u3081\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30aa\u30fc\u30b1\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3\u30c4\u30fc\u30eb\u3068\u3057\u3066\u306eConsul\u306e\u4f7f\u3044\u65b9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Consul\u30b5\u30fc\u30d0\u30af\u30e9\u30b9\u30bf<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">consul-conf<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">husseingalal\/consul-config<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">consul<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:consul\"<\/span>\r\n<span class=\"na\">consul<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">husseingalal\/consul<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">consul-conf<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/ssl<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/config<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/consul<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u9886\u4e8b\u6ce8\u518c\u5458<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/48-0.png\" alt=\"community-consul-registrator.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Registrator\u306f\u3001Docker\u3067\u7acb\u3061\u4e0a\u3052\u305f\u30b3\u30f3\u30c6\u30ca\u306b\u95a2\u3059\u308b\u60c5\u5831\u3092\u3001Consul \u3084 etcd\u3001SkyDNS 2\u3078\u767b\u9332\u3059\u308b\u305f\u3081\u306e\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Docker-Registrator(Normal\/internal)\u3067Consul\u306b\u767b\u9332\u3055\u308c\u308b\u5185\u5bb9\u306f\uff1f<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Amazon ECS + registrator + consul \u3067\u30b5\u30fc\u30d3\u30b9\u306e\u81ea\u52d5\u767b\u9332\u8d85\u30b7\u30f3\u30d7\u30eb\u30d1\u30bf\u30fc\u30f3<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">consul-registrator<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">consul,consul-data<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">consul:\/\/consul:8500<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">gliderlabs\/registrator:v7<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">consul<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/tmp\/docker.sock<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">consul<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8300:8300\/tcp<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8301:8301\/tcp<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8301:8301\/udp<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8302:8302\/tcp<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8302:8302\/udp<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8400:8400\/tcp<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8500:8500\/tcp<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8600:8600\/tcp<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8600:8600\/udp<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.dns<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">agent<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">-retry-join<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${consul_server}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">-recursor=169.254.169.250<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">-client=0.0.0.0<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">CONSUL_LOCAL_CONFIG<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">{<\/span><span class=\"se\">\\\"<\/span><span class=\"s\">leave_on_terminate<\/span><span class=\"se\">\\\"<\/span><span class=\"s\">:<\/span> <span class=\"s\">true,<\/span> <span class=\"se\">\\\"<\/span><span class=\"s\">datacenter<\/span><span class=\"se\">\\\"<\/span><span class=\"s\">:<\/span> <span class=\"se\">\\\"<\/span><span class=\"s\">${consul_datacenter}<\/span><span class=\"se\">\\\"<\/span><span class=\"s\">}\"<\/span>\r\n    <span class=\"na\">CONSUL_BIND_INTERFACE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">eth0<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">consul-data<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">consul:v0.6.4<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">consul-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">consul:v0.6.4<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/consul\/data<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n\r\n<\/code><\/pre>\n<h2>DataDog\u4ee3\u7406\u548cDogStatsD<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/52-0.png\" alt=\"community-datadog.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3010Docker\u3011&#8221;\u307e\u305f\u6b7b\u3093\u3067\u308b\uff01\uff01&#8221;\u30b3\u30f3\u30c6\u30ca\u306e\u6b7b\u6d3b\u7ba1\u7406\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Datadog \u3067 Docker \u30b3\u30f3\u30c6\u30ca\u3092\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">datadog-init<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">janeczku\/datadog-rancher-init:v2.2.3<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n<span class=\"na\">datadog-agent<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">datadog\/docker-dd-agent:11.3.585<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/opt\/rancher\/entrypoint-wrapper.py<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">supervisord<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">-n<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">-c<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/dd-agent\/supervisor.conf<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">API_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${api_key}<\/span>\r\n    <span class=\"na\">SD_BACKEND_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sd_backend_host}<\/span>\r\n    <span class=\"na\">SD_BACKEND_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sd_backend_port}<\/span>\r\n    <span class=\"na\">SD_TEMPLATE_DIR<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sd_template_dir}<\/span>\r\n    <span class=\"na\">STATSD_METRIC_NAMESPACE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${statsd_namespace}<\/span>\r\n    <span class=\"na\">DD_STATSD_STANDALONE<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${statsd_standalone}\"<\/span>\r\n    <span class=\"na\">DD_HOST_LABELS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${host_labels}<\/span>\r\n    <span class=\"na\">DD_CONTAINER_LABELS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${service_labels}<\/span>\r\n    <span class=\"na\">DD_SERVICE_DISCOVERY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${service_discovery}<\/span>\r\n    <span class=\"na\">DD_SD_CONFIG_BACKEND<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sd_config_backend}<\/span>\r\n    <span class=\"na\">DD_CONSUL_TOKEN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${dd_consul_token}<\/span>\r\n    <span class=\"na\">DD_CONSUL_SCHEME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${dd_consul_scheme}<\/span>\r\n    <span class=\"na\">DD_CONSUL_VERIFY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${dd_consul_verify}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/proc\/:\/host\/proc\/:ro<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/sys\/fs\/cgroup\/:\/host\/sys\/fs\/cgroup:ro<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">datadog-init<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${global_service}\"<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">datadog-init'<\/span>\r\n\r\n<\/code><\/pre>\n<h2>DNS \u66f4\u65b0\uff08RFC2136\uff09<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/56-0.png\" alt=\"community-infra-dnsupdate-rfc2136.png\" \/><\/div>\n<ul class=\"post-ul\">Dynamic DNS\u306e\u57fa\u790e\u3068nsupdate<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">rfc2136dns<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/external-dns:v0.6.0<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">-provider=rfc2136<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"m\">1000<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">RFC2136_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RFC2136_HOST}<\/span>\r\n    <span class=\"na\">RFC2136_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RFC2136_PORT}<\/span>\r\n    <span class=\"na\">RFC2136_TSIG_KEYNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RFC2136_TSIG_KEYNAME}<\/span>\r\n    <span class=\"na\">RFC2136_TSIG_SECRET<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RFC2136_TSIG_SECRET}<\/span>\r\n    <span class=\"na\">ROOT_DOMAIN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOT_DOMAIN}<\/span>\r\n    <span class=\"na\">NAME_TEMPLATE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${NAME_TEMPLATE}<\/span>\r\n    <span class=\"na\">TTL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${TTL}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n    <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">external-dns\"<\/span>\r\n\r\n<\/code><\/pre>\n<h2>DNSimple DNS \u7b80\u5355\u57df\u540d\u7cfb\u7edf<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/60-0.png\" alt=\"community-dnsimple.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">DNSimple\u3092\u5229\u7528\u3067\u304d\u308b\u30e9\u30a4\u30d6\u30e9\u30ea<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">https:\/\/dnsimple.com\/<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">dnsimple<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/external-dns:v0.6.0<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">-provider=dnsimple<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span> \r\n   <span class=\"pi\">-<\/span> <span class=\"m\">1000<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">DNSIMPLE_TOKEN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DNSIMPLE_TOKEN}<\/span>\r\n    <span class=\"na\">DNSIMPLE_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DNSIMPLE_EMAIL}<\/span>\r\n    <span class=\"na\">ROOT_DOMAIN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOT_DOMAIN}<\/span>\r\n    <span class=\"na\">NAME_TEMPLATE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${NAME_TEMPLATE}<\/span>\r\n    <span class=\"na\">TTL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${TTL}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n    <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">external-dns\"<\/span>\r\n<\/code><\/pre>\n<h2>\u5fb7\u5e93\u7ef4\u57fa<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/64-0.png\" alt=\"community-dokuwiki.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u524d\u63d0\u3068\u3057\u306a\u3044\u3001\u4f7f\u3044\u6613\u304f\u6c4e\u7528\u6027\u306e\u9ad8\u3044\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30a6\u30a3\u30ad\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u4e0d\u8981\u306eWiki\u30af\u30ed\u30fc\u30f3\u300cDokuWiki\u300d\u306e\u5c0e\u5165<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">dokuwiki-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:80\/tcp<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">dokuwiki-data<\/span>\r\n  <span class=\"na\">hostname<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${dokuwiki_hostname}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ununseptium\/dokuwiki-docker<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">dokuwiki-data<\/span>\r\n\r\n<span class=\"na\">dokuwiki-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">hostname<\/span><span class=\"pi\">:<\/span> <span class=\"s\">dokuwikidata<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ununseptium\/dokuwiki-docker<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/www\/html\/data<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/www\/html\/lib\/plugins<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u65e0\u4eba\u673a (w\u00fa j\u012b)<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/68-0.png\" alt=\"community-drone.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Docker\u3092\u4f7f\u3063\u3066\u30c6\u30b9\u30c8\u74b0\u5883\u3092\u6bce\u56de\u69cb\u7bc9\u3001\u7834\u68c4\u3057\u3066\u304f\u308c\u307e\u3059\u3002\u3057\u304b\u3082Drone\u306eCI\u74b0\u5883\u69cb\u7bc9\u306b\u3064\u3044\u3066\u3082Docker\u3092\u4f7f\u3063\u3066\u7c21\u5358\u306b\u3067\u304d\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Docker\u3092\u4f7f\u3063\u305fCI\u30b5\u30fc\u30d0\u300cDrone\u300d\u30ec\u30d3\u30e5\u30fc<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">OSS\u7248\u3000drone.io \u3092\u4f7f\u3063\u3066 Docker Image \u3092\u30d3\u30eb\u30c9<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">drone-lb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${public_port}:8000<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">drone-server:drone-server<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n\r\n<span class=\"na\">drone-healthcheck<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/drone-config:v0.1.0<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">container:drone-server'<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">drone-data-volume<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/giddyup health<\/span>\r\n\r\n<span class=\"na\">drone-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/drone-config:v0.1.0<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">drone-data-volume<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span> \r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">drone-data-volume,drone-daemon,drone-healthcheck<\/span>\r\n  <span class=\"na\">external_links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${database_service}:database<\/span>\r\n\r\n<span class=\"na\">drone-daemon<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/drone:0.4<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">container:drone-server'<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">drone-data-volume<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/opt\/rancher\/rancher_entry.sh<\/span>\r\n\r\n<span class=\"c1\">## Do not change below. Could cause data loss in upgrade.<\/span>\r\n<span class=\"na\">drone-data-volume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/drone<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/drone<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u65e0\u4eba\u673a\u7267\u573a\u8282\u70b9\u7ba1\u7406\u5668<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/72-0.png\" alt=\"community-drone.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\u4e00\u3064\u306e\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u306f\u3001\u30db\u30b9\u30c8\u3054\u3068\u306b\u5b9f\u884c\u3057\u3001\u5358\u4e00\u306e\u30ef\u30fc\u30ab\u30fc\u3092\u767b\u9332\u3057\u3066\u304f\u308c\u308brancher\u5411\u3051\u306eci\u30c4\u30fc\u30eb\u3063\u307d\u3044<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">drone-agent<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/socat-docker<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/docker:\/var\/lib\/docker<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">dynamic-drones-mgr-0<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">DRONE_TOKEN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DRONE_TOKEN}<\/span>\r\n    <span class=\"na\">DRONE_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">http:\/\/droneserver:8000<\/span>\r\n  <span class=\"na\">external_links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${DRONE_SERVICE}:droneserver<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/drone-agent<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/dynamic-drone-nodes<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/stacks\/${STACK_NAME}\/services\/drone-agent<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/drone-config:v0.1.0<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u7267\u573a\u4e3bECR\u51ed\u8bc1\u66f4\u65b0\u5668<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/76-0.png\" alt=\"community-ecr.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">EC2 Container Registry \u306b\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306b\u306a\u3063\u3066\u304a\u308a\u3001\u5916\u306b\u7f6e\u304d\u305f\u304f\u306a\u3044\u30b3\u30f3\u30c6\u30ca\u30a4\u30e1\u30fc\u30b8\u3092AWS\u5185\u3067\u7ba1\u7406\u3059\u308b\u306e\u306b\u9069\u3057\u3066\u3044\u307e\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Amazon ECR + ECS CLI \u30cf\u30f3\u30ba\u30aa\u30f3<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">ecr-updater<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">AWS_ACCESS_KEY_ID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${aws_access_key_id}<\/span>\r\n    <span class=\"na\">AWS_SECRET_ACCESS_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${aws_secret_access_key}<\/span>\r\n    <span class=\"na\">AWS_REGION<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${aws_region}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s\">environment<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">objectpartners\/rancher-ecr-credentials:1.1.0<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n\r\n\r\n<\/code><\/pre>\n<h2>\u5f39\u6027\u641c\u7d22<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/80-0.png\" alt=\"community-elasticsearch.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u8a2d\u8a08\u30d5\u30ed\u30fc\u307e\u3067\u5909\u3048\u3066\u3057\u307e\u3046\u753b\u671f\u7684\u306a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u6307\u5411\u578b\u691c\u7d22\u30a8\u30f3\u30b8\u30f3<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Elasticsearch \u5165\u9580<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Docker\u3067\u7c21\u5358\u306bElasticsearch\u306e\u30af\u30e9\u30b9\u30bf\u3092\u8a66\u3057\u3066\u307f\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">elasticsearch-masters<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/elasticsearch-conf:v0.4.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch-base-master,elasticsearch-datavolume-masters<\/span>\r\n<span class=\"na\">elasticsearch-datavolume-masters<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/data<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:1.7.3<\/span>\r\n<span class=\"na\">elasticsearch-base-master<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.master.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:1.7.3<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:elasticsearch-masters\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-masters<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin\/run.sh<\/span>\r\n\r\n\r\n<span class=\"na\">elasticsearch-datanodes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/elasticsearch-conf:v0.4.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch-base-datanode,elasticsearch-datavolume-datanode<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters:es-masters<\/span>\r\n<span class=\"na\">elasticsearch-datavolume-datanode<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/data<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:1.7.3<\/span>\r\n<span class=\"na\">elasticsearch-base-datanode<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:1.7.3<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters:es-masters<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin\/run.sh<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datanodes<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-datanode<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:elasticsearch-datanodes\"<\/span>\r\n\r\n\r\n<span class=\"na\">elasticsearch-clients<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/elasticsearch-conf:v0.4.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch-base-clients,elasticsearch-datavolume-clients<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters:es-masters<\/span>\r\n<span class=\"na\">elasticsearch-datavolume-clients<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/data<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:1.7.3<\/span>\r\n<span class=\"na\">elasticsearch-base-clients<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.client.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:1.7.3<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-clients<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-clients<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:elasticsearch-clients\"<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin\/run.sh<\/span>\r\n\r\n\r\n<span class=\"na\">kopf<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/kopf:v0.4.0<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span> \r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">80:80\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">KOPF_SERVER_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">es.dev'<\/span>\r\n    <span class=\"na\">KOPF_ES_SERVERS<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">es-clients:9200'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-clients:es-clients<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Elasticsearch 2.x \u53ef\u5f39\u6027\u5730\u641c\u7d22\u3002<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/84-0.png\" alt=\"community-elasticsearch.svg.png\" \/><\/div>\n<ul class=\"post-ul\">Elasticsearch Marvel 2.x \u306f\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u3067\u3082\u7121\u6599\u3067\u4f7f\u3048\u308b\u306e\u3067\u5165\u308c\u3066\u304a\u3053\u3046<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">elasticsearch-masters<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/elasticsearch-conf:v0.5.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch-base-master,elasticsearch-datavolume-masters<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-masters<\/span>\r\n<span class=\"na\">elasticsearch-datavolume-masters<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/data<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/config<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:2.2.1<\/span>\r\n<span class=\"na\">elasticsearch-base-master<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.master.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:2.2.1<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:elasticsearch-masters\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-masters<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin\/run.sh<\/span>\r\n\r\n\r\n<span class=\"na\">elasticsearch-datanodes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/elasticsearch-conf:v0.5.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch-base-datanode,elasticsearch-datavolume-datanode<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters:es-masters<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-datanode<\/span>\r\n<span class=\"na\">elasticsearch-datavolume-datanode<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/data<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/config<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:2.2.1<\/span>\r\n<span class=\"na\">elasticsearch-base-datanode<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:2.2.1<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters:es-masters<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin\/run.sh<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-datanode<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:elasticsearch-datanodes\"<\/span>\r\n\r\n\r\n<span class=\"na\">elasticsearch-clients<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/elasticsearch-conf:v0.5.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch-base-clients,elasticsearch-datavolume-clients<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters:es-masters<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-clients<\/span>\r\n<span class=\"na\">elasticsearch-datavolume-clients<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/data<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/share\/elasticsearch\/config<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:2.2.1<\/span>\r\n<span class=\"na\">elasticsearch-base-clients<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.client.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:2.2.1<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-clients<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:elasticsearch-clients\"<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin\/run.sh<\/span>\r\n\r\n\r\n<span class=\"na\">kopf<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/kopf:v0.4.0<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${kopf_port}:80\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">KOPF_SERVER_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">es.dev'<\/span>\r\n    <span class=\"na\">KOPF_ES_SERVERS<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">es-clients:9200'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-clients:es-clients<\/span>\r\n<\/code><\/pre>\n<h2>AWS\u7ecf\u5178\u578b\u5916\u90e8\u8d1f\u8f7d\u5747\u8861\u5668<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/88-0.png\" alt=\"community-aws-elbv1.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">elb\u3068\u9023\u643a\u304c\u7c21\u5358\u306b\u3067\u304d\u307e\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">http:\/\/rancher.com\/inside-the-external-elb-catalog-template\/<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">elbv1<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/external-lb:v0.2.1<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">-provider=elbv1<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span> \r\n   <span class=\"pi\">-<\/span> <span class=\"m\">1000<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">ELBV1_AWS_ACCESS_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ELBV1_AWS_ACCESS_KEY}<\/span>\r\n    <span class=\"na\">ELBV1_AWS_SECRET_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ELBV1_AWS_SECRET_KEY}<\/span>\r\n    <span class=\"na\">ELBV1_AWS_REGION<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ELBV1_AWS_REGION}<\/span>\r\n    <span class=\"na\">ELBV1_AWS_VPCID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ELBV1_AWS_VPCID}<\/span>\r\n    <span class=\"na\">ELBV1_USE_PRIVATE_IP<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ELBV1_USE_PRIVATE_IP}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n    <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">external-dns\"<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Etcd\u662f\u4e00\u79cd\u539f\u751f\u652f\u6301\u4e2d\u6587\u7684\u5206\u5e03\u5f0f\u952e\u503c\u5b58\u50a8\u7cfb\u7edf\u3002<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/92-0.png\" alt=\"community-etcd-ha.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">etcd \u306f Go \u8a00\u8a9e\u3067\u8a18\u8ff0\u3055\u308c\u305f\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u9ad8\u4fe1\u983c\u5206\u6563 KVS\u3067\u3059\u3002\u307e\u305f etcd \u30af\u30e9\u30b9\u30bf\u306f\u3001CoreOS \u4e0a\u306e Docker \u30b3\u30f3\u30c6\u30ca\u74b0\u5883\u7b49\u306b\u914d\u5099\u3055\u308c\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u9593\u3067\u30b5\u30fc\u30d3\u30b9\u8a2d\u5b9a\u60c5\u5831\u306a\u3069\u3092\u4ea4\u63db\u3001\u5171\u6709\u3059\u308b\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u5c1a\u3001\u540c\u69d8\u306e\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3067\u306f\u3001Apache ZooKeeper \u3084 consul \u7b49\u304c\u8a72\u5f53\u3059\u308b\u3068\u601d\u308f\u308c\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">etcd + docker \u3067\u7c21\u5358\u306b\u30ea\u30e2\u30fc\u30c8\u30b3\u30f3\u30c6\u30ca\u306b\u63a5\u7d9a\u3057\u3088\u3046<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">CentOS \u3067\u59cb\u3081\u308b etcd<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">etcd<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/etcd:v2.3.7-11<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.scheduler.affinity:host_label_soft: etcd=true<\/span>\r\n        <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n        <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">data<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">RANCHER_DEBUG<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${RANCHER_DEBUG}'<\/span>\r\n        <span class=\"na\">EMBEDDED_BACKUPS<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${EMBEDDED_BACKUPS}'<\/span>\r\n        <span class=\"na\">BACKUP_PERIOD<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${BACKUP_PERIOD}'<\/span>\r\n        <span class=\"na\">BACKUP_RETENTION<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${BACKUP_RETENTION}'<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">etcd:\/pdata<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${BACKUP_LOCATION}:\/data-backup<\/span>\r\n    <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">data<\/span>\r\n<span class=\"na\">data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/data<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n<\/code><\/pre>\n<h2>F5 BIG-IP \u53ef\u4ee5\u4f5c\u4ee5\u4e0b\u4e2d\u6587\u91ca\u4e49:<\/h2>\n<p>1. F5 \u5927\u578b\u7f51\u7edc\u5e94\u7528\u4ea4\u4ed8\u5e73\u53f0 (F5<br \/>\n2. F5 \u5927\u578b\u7f51\u7edc\u8d1f\u8f7d\u5747\u8861\u5668 (F5 q\u00ec)<br \/>\n3. F5 \u5927\u578b\u7f51\u7edc\u9632\u706b\u5899 (F5<br \/>\n4. F5 \u5927\u578b\u7f51\u7edc\u5b89\u5168\u8bbe\u5907 (F5<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/96-0.png\" alt=\"community-f5.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Virtual Edition(\u4ee5\u5f8cBIG-IP VE)\u3068\u306f\u3001\u7c21\u5358\u306b\u3044\u3046\u3068\u30ed\u30fc\u30c9\u30d0\u30e9\u30f3\u30b5\u30fc\uff08\u8ca0\u8377\u5206\u6563\u88c5\u7f6e\uff09\u307f\u305f\u3044\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30a4\u30f3\u30d5\u30e9\u30a8\u30f3\u30b8\u30cb\u30a2\u5411\u3051\u3001F5 BIG-IP Virtual Edition for AWS \u3092\u4f7f\u3063\u3066\u307f\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">external-lb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/external-lb:v0.1.1<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">-provider=f5_BigIP<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span> \r\n   <span class=\"pi\">-<\/span> <span class=\"m\">1000<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">F5_BIGIP_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${F5_BIGIP_HOST}<\/span>\r\n    <span class=\"na\">F5_BIGIP_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${F5_BIGIP_USER}<\/span>\r\n    <span class=\"na\">F5_BIGIP_PWD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${F5_BIGIP_PWD}<\/span>\r\n    <span class=\"na\">LB_TARGET_RANCHER_SUFFIX<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LB_TARGET_RANCHER_SUFFIX}<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Facebook Capture the Flag<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">FBCTF\u3068\u3044\u3046Facebook\u304c\u51fa\u3057\u305f\u65d7\u53d6\u308a\u30b2\u30fc\u30e0\u306e\u3088\u3046\u306b\u3001\u554f\u984c\u3092\u30af\u30ea\u30a2\u3057\u3066\u3044\u304f\u30b2\u30fc\u30e0\u3060\u305d\u3046\u3067\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Facebook CTF(fbctf)\u3067\u904a\u3093\u3067\u3044\u308b\u4eba\u3044\u305f<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">fbctf<\/span><span class=\"pi\">:<\/span>  \r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">qazbnm456\/dockerized_fbctf:multi_containers'<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">mysql<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">memcached<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:80<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${https_port}:443<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql<\/span>\r\n    <span class=\"na\">MYSQL_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3306<\/span>\r\n    <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_database}<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_user}<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_password}<\/span>\r\n    <span class=\"na\">MEMCACHED_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"m\">11211<\/span>\r\n    <span class=\"na\">SSL_SELF_SIGNED<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ssl}<\/span>\r\n\r\n<span class=\"na\">mysql<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">mysql:5.5'<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">root<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_user}<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_password}<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql<\/span>\r\n\r\n<span class=\"na\">memcached<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">memcached:latest'<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">memcached<\/span>\r\n<\/code><\/pre>\n<h2>\u9b3c\u9b42<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/103-0.png\" alt=\"community-ghost.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u8efd\u91cf\u30d6\u30ed\u30b0\u306e1\u3064<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Ghost<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Docker\u3067Ghost\u3092\u52d5\u304b\u3057\u3066\u307f\u308b #1<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">ghost<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ghost<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${public_port}:2368<\/span>\r\n\r\n<\/code><\/pre>\n<h2>GitLab \u53ef\u4ee5\u5728\u4e2d\u56fd\u8fdb\u884c\u539f\u751f\u8bed\u4e2d\u7684\u8f6c\u8ff0\u3002<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/107-0.png\" alt=\"community-gitlab.svg.png\" \/><\/div>\n<ul class=\"post-ul\">GitLab\u3068\u306f\u3001GitHub\u306e\u3088\u3046\u306a\u30b5\u30fc\u30d3\u30b9\u3092\u793e\u5185\u306a\u3069\u306e\u30af\u30ed\u30fc\u30ba\u30c9\u306a\u74b0\u5883\u306b\u72ec\u81ea\u3067\u69cb\u7bc9\u3067\u304d\u308b\u3088\u3046\u306b\u516c\u958b\u3055\u308c\u305f\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u3067\u3059\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">fbctf<\/span><span class=\"pi\">:<\/span>  \r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">qazbnm456\/dockerized_fbctf:multi_containers'<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">mysql<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">memcached<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:80<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${https_port}:443<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql<\/span>\r\n    <span class=\"na\">MYSQL_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"m\">3306<\/span>\r\n    <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_database}<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_user}<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_password}<\/span>\r\n    <span class=\"na\">MEMCACHED_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"m\">11211<\/span>\r\n    <span class=\"na\">SSL_SELF_SIGNED<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ssl}<\/span>\r\n\r\n<span class=\"na\">mysql<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">mysql:5.5'<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">root<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_user}<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_password}<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql<\/span>\r\n\r\n<span class=\"na\">memcached<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">memcached:latest'<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">memcached<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Gocd \u4ee3\u7406<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/111-0.png\" alt=\"community-gocd-agent.png.png\" \/><\/div>\n<ul class=\"post-ul\">CI\/CD\u30c4\u30fc\u30eb\u306e\uff11\u3064(Jenkins\u3084Travis CI\u306a\u3069\u306e\u4ef2\u9593\u3063\u307d\u3044)<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">gocd-agent<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">gocd.role<\/span><span class=\"pi\">:<\/span> <span class=\"s\">agent<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/rancher-goagent:16.2.1-1<\/span>\r\n  <span class=\"na\">external_links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${goserver_ip}:gocd-server<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">AGENT_MEM=${mem_initial}m<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">AGENT_MAX_MEM=${mem_max}m<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">GO_SERVER=gocd-server.rancher.internal<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">GO_SERVER_PORT=${goserver_port}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Gocd\u670d\u52a1\u5668<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/115-0.png\" alt=\"community-gocd-agent.png.png\" \/><\/div>\n<ul class=\"post-ul\">CI\/CD\u30c4\u30fc\u30eb\u306e\uff11\u3064(Jenkins\u3084Travis CI\u306a\u3069\u306e\u4ef2\u9593\u3063\u307d\u3044)<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">gocd-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">gocd.role<\/span><span class=\"pi\">:<\/span> <span class=\"s\">server<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/rancher-goserver:16.2.1-3<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">gocd-volume<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">SERVER_MEM=${mem_initial}m<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">SERVER_MAX_MEM=${mem_max}m<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${public_port}:8153<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${ssh_port}:8154<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">gocd-volume<\/span>\r\n<span class=\"na\">gocd-volume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${volume_work}:\/opt\/go-server\/work<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volume_driver}<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u72d7\u65af<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/119-0.png\" alt=\"community-gogs.png.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Go\u3067\u4f5c\u3089\u308c\u305fGitHub\u30af\u30ed\u30fc\u30f3<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u7a76\u6975\u7684\u306b\u7c21\u5358\u306b\u59cb\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u308bGo\u3067\u4f5c\u3089\u308c\u305fGitHub\u30af\u30ed\u30fc\u30f3\u300cGogs\u300d<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">gogs<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">gogs\/gogs:latest<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:3000<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${ssh_port}:22<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">mysql:db<\/span>\r\n\r\n<span class=\"na\">mysql<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql:latest<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${public_port}:3306<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${mysql_password}<\/span>\r\n<\/code><\/pre>\n<h2>Grafana \u2192 Grafana<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/123-0.png\" alt=\"community-grafana.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Kibana\u306fElasticsearch\u3001Grafana\u306fGraphite or InfluxDB\u3092\u4e3b\u306b\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u3068\u3057\u3066Web\u30d6\u30e9\u30a6\u30b6\u3067\u52d5\u4f5c\u3059\u308b\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u30c4\u30fc\u30eb\u3067\u3059(Kibana\u3068Grafana\u306e\u6bd4\u8f03)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">InfluxDB\u3068Grafana\u3092\u4f7f\u3063\u3066\u30b5\u30fc\u30d0\u30fc\u30ea\u30bd\u30fc\u30b9\u306e\u53ef\u8996\u5316\u3092\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">grafana<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana\/grafana:latest<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:3000<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">GF_SECURITY_ADMIN_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${admin_username}<\/span>\r\n        <span class=\"na\">GF_SECURITY_ADMIN_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${admin_password}<\/span>\r\n        <span class=\"na\">GF_SECURITY_SECRET_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${secret_key}<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Hadoop\u548cYarn<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/127-0.png\" alt=\"community-hadoop.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30d3\u30c3\u30b0\u30fb\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u3059\u308b\u306e\u306b\u6700\u3082\u3088\u304f\u4f7f\u308f\u308c\u3066\u3044\u308b\u30c4\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u3042\u306e\u65e5\u898b\u305fYARN\u306e\u304a\u4ed5\u4e8b\u3092\u50d5\u9054\u306f\u307e\u3060\u77e5\u3089\u306a\u3044\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">bootstrap-hdfs<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">su<\/span> <span class=\"s\">-c<\/span> <span class=\"s\">\"sleep<\/span> <span class=\"s\">20<\/span> <span class=\"s\">&amp;&amp;<\/span> <span class=\"s\">exec<\/span> <span class=\"s\">\/bootstrap-hdfs.sh\"<\/span> <span class=\"s\">hdfs'<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:namenode-primary\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">namenode-primary-data<\/span>\r\n<span class=\"na\">sl-namenode-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-followers-config:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:namenode-primary\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">NODETYPE<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">hdfs\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">namenode-primary-data<\/span>\r\n<span class=\"na\">namenode-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-config:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:namenode-primary\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">namenode-primary-data<\/span>\r\n<span class=\"na\">namenode-primary<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">su<\/span> <span class=\"s\">-c<\/span> <span class=\"s\">\"sleep<\/span> <span class=\"s\">15<\/span> <span class=\"s\">&amp;&amp;<\/span> <span class=\"s\">\/usr\/local\/hadoop-2.7.1\/bin\/hdfs<\/span> <span class=\"s\">namenode\"<\/span> <span class=\"s\">hdfs'<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">namenode-primary-data<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">50070:50070<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">namenode-config,sl-namenode-config,bootstrap-hdfs,namenode-primary-data<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft: io.rancher.stack_service.name=$${stack_name}\/yarn-resourcemanager,io.rancher.stack_service.name=$${stack_name}\/jobhistory-server<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/datanode<\/span>\r\n<span class=\"na\">namenode-primary-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${cluster}-namenode-primary-config:\/etc\/hadoop'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/tmp'<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/bootstrap-local.sh'<\/span>\r\n\r\n\r\n<span class=\"na\">datanode-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-config:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:datanode\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">datanode-data<\/span>\r\n<span class=\"na\">datanode-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${cluster}-datanode-config:\/etc\/hadoop'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/tmp'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/bootstrap-local.sh'<\/span>\r\n<span class=\"na\">datanode<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">datanode-data<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">datanode-config,datanode-data<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/namenode-primary,io.rancher.stack_service.name=$${stack_name}\/yarn-resourcemanager<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">namenode-primary:namenode'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">su<\/span> <span class=\"s\">-c<\/span> <span class=\"s\">\"sleep<\/span> <span class=\"s\">45<\/span> <span class=\"s\">&amp;&amp;<\/span> <span class=\"s\">exec<\/span> <span class=\"s\">\/usr\/local\/hadoop-2.7.1\/bin\/hdfs<\/span> <span class=\"s\">datanode\"<\/span> <span class=\"s\">hdfs'<\/span>\r\n\r\n<span class=\"na\">yarn-nodemanager-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-config:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:yarn-nodemanager\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">yarn-nodemanager-data<\/span>\r\n<span class=\"na\">yarn-nodemanager-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${cluster}-yarn-nodemanager-config:\/etc\/hadoop'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/tmp'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/bootstrap-local.sh'<\/span>\r\n<span class=\"na\">yarn-nodemanager<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">yarn-nodemanager-data<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">8042:8042'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">yarn-nodemanager-config,yarn-nodemanager-data<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/namenode-primary,io.rancher.stack_service.name=$${stack_name}\/yarn-resourcemanager,io.rancher.stack_service.name=$${stack_name}\/jobhistory-server,<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label: io.rancher.stack_service.name=$${stack_name}\/datanode<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">namenode-primary:namenode'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">yarn-resourcemanager:yarn-rm'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">su<\/span> <span class=\"s\">-c<\/span> <span class=\"s\">\"sleep<\/span> <span class=\"s\">45<\/span> <span class=\"s\">&amp;&amp;<\/span> <span class=\"s\">exec<\/span> <span class=\"s\">\/usr\/local\/hadoop-2.7.1\/bin\/yarn<\/span> <span class=\"s\">nodemanager\"<\/span> <span class=\"s\">yarn'<\/span>\r\n\r\n<span class=\"na\">jobhistory-server-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-config:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:jobhistory-server\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">jobhistory-server-data<\/span>\r\n<span class=\"na\">jobhistory-server-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${cluster}-jobhistory-config:\/etc\/hadoop'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/tmp'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/bootstrap-local.sh'<\/span>\r\n<span class=\"na\">jobhistory-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">jobhistory-server-data<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">namenode-primary:namenode'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">yarn-resourcemanager:yarn-rm'<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">10020:10020'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">19888:19888'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">jobhistory-server-config,jobhistory-server-data<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label: io.rancher.stack_service.name=$${stack_name}\/yarn-resourcemanager,io.rancher.stack_service.name=$${stack_name}\/namenode-primary<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">su<\/span> <span class=\"s\">-c<\/span> <span class=\"s\">\"sleep<\/span> <span class=\"s\">45<\/span> <span class=\"s\">&amp;&amp;<\/span> <span class=\"s\">\/usr\/local\/hadoop-2.7.1\/bin\/mapred<\/span> <span class=\"s\">historyserver\"<\/span> <span class=\"s\">mapred'<\/span>\r\n\r\n<span class=\"na\">yarn-resourcemanager-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-config:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:yarn-resourcemanager\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">yarn-resourcemanager-data<\/span>\r\n<span class=\"na\">sl-yarn-resourcemanager-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-followers-config:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:yarn-resourcemanager\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">NODETYPE<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">yarn\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">yarn-resourcemanager-data<\/span>\r\n<span class=\"na\">yarn-resourcemanager-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${cluster}-yarn-resourcemanager-config:\/etc\/hadoop'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/tmp'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/bootstrap-local.sh'<\/span>\r\n<span class=\"na\">yarn-resourcemanager<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/hadoop-base:v0.3.5<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">yarn-resourcemanager-data<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">8088:8088'<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">namenode-primary:namenode'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">yarn-resourcemanager-config,sl-yarn-resourcemanager-config,yarn-resourcemanager-data<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name},io.rancher.stack_service.name=$${stack_name}\/datanode,io.rancher.stack_service.name=$${stack_name}\/yarn-nodemanager<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label: io.rancher.stack_service.name=$${stack_name}\/namenode-primary<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">su<\/span> <span class=\"s\">-c<\/span> <span class=\"s\">\"sleep<\/span> <span class=\"s\">30<\/span> <span class=\"s\">&amp;&amp;<\/span> <span class=\"s\">\/usr\/local\/hadoop-2.7.1\/bin\/yarn<\/span> <span class=\"s\">resourcemanager\"<\/span> <span class=\"s\">yarn'<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u6e05\u6d01\u5de5<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/131-0.png\" alt=\"community-janitor.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4f7f\u308f\u308c\u3066\u3044\u306a\u3044\u30ea\u30bd\u30fc\u30b9\u3092\u81ea\u52d5\u524a\u9664\u3059\u308b\u30c4\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4f7f\u3063\u3066\u3044\u306a\u3044AWS\u30ea\u30bd\u30fc\u30b9\u3092\u76e3\u8996\u3057\u3066\u81ea\u52d5\u524a\u9664\u3059\u308bJanitor Monkey\u3092\u4f7f\u3063\u3066\u307f\u305f<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">cleanup<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">meltwater\/docker-cleanup:1.8.0<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">CLEAN_PERIOD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${FREQUENCY}<\/span>\r\n    <span class=\"na\">DELAY_TIME<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">900\"<\/span>\r\n    <span class=\"na\">KEEP_IMAGES<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${KEEP}\"<\/span>\r\n    <span class=\"na\">KEEP_CONTAINERS<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${KEEPC}\"<\/span>\r\n    <span class=\"na\">KEEP_CONTAINERS_NAMED<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${KEEPCN}\"<\/span>\r\n    <span class=\"na\">LOOP<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n    <span class=\"na\">DEBUG<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">0\"<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n     <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n     <span class=\"s\">io.rancher.scheduler.affinity:host_label_ne: \"${EXCLUDE_LABEL}\"<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/docker:\/var\/lib\/docker<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Jenkins &#8211; \u8d44\u8d28\u7684 \u9009\u62d4<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/135-0.png\" alt=\"community-jenkins-swarm.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u304a\u306a\u3058\u307fci\u30c4\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Jenkins + docker\u3067\u30c6\u30b9\u30c8\u306e\u4e26\u5217\u5316<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">jenkins-primary<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">jenkins:2.19.4\"<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${PORT}:8080\"<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">jenkins-plugins,jenkins-datavolume<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">jenkins-plugins<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">jenkins-datavolume<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/usr\/share\/jenkins\/rancher\/jenkins.sh<\/span>\r\n<span class=\"na\">jenkins-plugins<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/jenkins-plugins:v0.1.1<\/span>\r\n<span class=\"na\">jenkins-datavolume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">busybox\"<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${volume_work}:\/var\/jenkins_home<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">chown\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">-R\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">1000:1000\"<\/span><span class=\"pi\">,<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/var\/jenkins_home\"<\/span><span class=\"pi\">]<\/span>\r\n<\/code><\/pre>\n<h2>Jenkins\u8815\u866b\u63d2\u4ef6\u5ba2\u6237\u7aef<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/139-0.png\" alt=\"community-jenkins-swarm.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Jenkins\u5074\u3067\u3001\u52d5\u7684\u306b\u30b9\u30ec\u30fc\u30d6\u304c\u8ffd\u52a0\u3055\u308c\u305f\u308a\u3059\u308b\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u3088\u3046\u3067\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Docker Compose\u3067Jenkins\u3068Selenium Grid\u3092\u4e00\u6c17\u306b\u7acb\u3061\u4e0a\u3052\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">swarm-clients<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">rancher\/jenkins-swarm:v0.2.0\"<\/span>\r\n  <span class=\"na\">user<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${user}\"<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label_soft: ci=worker<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">external_links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${jenkins_service}:jenkins-primary\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">JENKINS_PASS<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${jenkins_pass}\"<\/span>\r\n    <span class=\"na\">JENKINS_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${jenkins_user}\"<\/span>\r\n    <span class=\"na\">SWARM_EXECUTORS<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${swarm_executors}\"<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/var\/jenkins_home\/workspace:\/var\/jenkins_home\/workspace'<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/tmp:\/tmp'<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Kibana 4 &#8211; \u53ea\u9700\u8981\u4e00\u4e2a\u9009\u62e9<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/143-0.png\" alt=\"community-kibana.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Elastic\u793e\u304c\u63d0\u4f9b\u3059\u308b\u30ed\u30b0\u30c7\u30fc\u30bf\u89e3\u6790\/\u53ef\u8996\u5316\u30c4\u30fc\u30eb\u3067\u3059\u3002 \u57fa\u672c\u7684\u306b\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u300cElasticsearch\u300d\u3068\u30bb\u30c3\u30c8\u3067\u4f7f\u308f\u308c\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Kibana 4 BETA\u30d5\u30a1\u30fc\u30b9\u30c8\u30a4\u30f3\u30d7\u30ec\u30c3\u30b7\u30e7\u30f3<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">kibana-vip<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${public_port}:80\"<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">nginx-proxy:kibana4<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">nginx-proxy-conf<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/nginx-conf:v0.2.0<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">-backend=rancher<\/span> <span class=\"s\">--prefix=\/2015-07-25\"<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n<span class=\"na\">nginx-proxy<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/nginx:v1.9.4-3<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">nginx-proxy-conf<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx-proxy-conf,kibana4<\/span>\r\n  <span class=\"na\">external_links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${elasticsearch_source}:elasticsearch<\/span>\r\n<span class=\"na\">kibana4<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kibana:4.4.2<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:nginx-proxy\"<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">ELASTICSEARCH_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">http:\/\/elasticsearch:9200\"<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u8ba9\u6211\u4eec\u6765\u52a0\u5bc6<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/147-0.png\" alt=\"community-letsencrypt.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u7121\u6599\u3067ssl\u304c\u53d6\u5f97\u3067\u304d\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Let&#8217;s Encrypt \u3067\u624b\u8efd\u306b HTTPS \u30b5\u30fc\u30d0\u3092\u8a2d\u5b9a\u3059\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Docker\u3067Let\u2019s Encrypt\u3057\u3088\u3063\u304b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">rancher\u3092ssl\u3092\u53d6\u5f97\u3057\u3066\u307f\u3088\u3046(\u57f7\u7b46\u4e2d)<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">letsencrypt<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">janeczku\/rancher-letsencrypt:v0.3.0<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">EULA<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${EULA}<\/span>\r\n    <span class=\"na\">API_VERSION<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${API_VERSION}<\/span>\r\n    <span class=\"na\">CERT_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_NAME}<\/span>\r\n    <span class=\"na\">EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${EMAIL}<\/span>\r\n    <span class=\"na\">DOMAINS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAINS}<\/span>\r\n    <span class=\"na\">PUBLIC_KEY_TYPE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${PUBLIC_KEY_TYPE}<\/span>\r\n    <span class=\"na\">RENEWAL_TIME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RENEWAL_TIME}<\/span>\r\n    <span class=\"na\">PROVIDER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${PROVIDER}<\/span>\r\n    <span class=\"na\">CLOUDFLARE_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CLOUDFLARE_EMAIL}<\/span>\r\n    <span class=\"na\">CLOUDFLARE_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CLOUDFLARE_KEY}<\/span>\r\n    <span class=\"na\">DO_ACCESS_TOKEN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DO_ACCESS_TOKEN}<\/span>\r\n    <span class=\"na\">AWS_ACCESS_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AWS_ACCESS_KEY}<\/span>\r\n    <span class=\"na\">AWS_SECRET_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AWS_SECRET_KEY}<\/span>\r\n    <span class=\"na\">DNSIMPLE_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DNSIMPLE_EMAIL}<\/span>\r\n    <span class=\"na\">DNSIMPLE_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DNSIMPLE_KEY}<\/span>\r\n    <span class=\"na\">DYN_CUSTOMER_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DYN_CUSTOMER_NAME}<\/span>\r\n    <span class=\"na\">DYN_USER_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DYN_USER_NAME}<\/span>\r\n    <span class=\"na\">DYN_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DYN_PASSWORD}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${STORAGE_VOLUME}\/etc\/letsencrypt\/production\/certs<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">environment'<\/span>\r\n<\/code><\/pre>\n<h2>\u6765\u98de\u95e8\u6237<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/151-0.png\" alt=\"community-liferay.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Web\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306e\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30dd\u30fc\u30bf\u30eb\uff08\u793e\u5185\u30dd\u30fc\u30bf\u30eb\u3001\u5bfe\u5916\u30b5\u30a4\u30c8\uff09\u88fd\u54c1\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30dd\u30fc\u30bf\u30eb\uff08\u793e\u5185\u30dd\u30fc\u30bf\u30eb\u3001\u5bfe\u5916\u30b5\u30a4\u30c8\uff09\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3001\u304a\u3088\u3073\u305d\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u7528\u306b\u958b\u767a\u3055\u308c\u305f\u30dd\u30fc\u30c8\u30ec\u30c3\u30c8\uff08\u6a5f\u80fd\u90e8\u54c1\uff09\u3001\u53ca\u3073\u30dd\u30fc\u30c8\u30ec\u30c3\u30c8\u306e\u958b\u767a\u74b0\u5883\u304b\u3089\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Liferay Portal\uff08\u30e9\u30a4\u30d5\u30ec\u30a4 \u30dd\u30fc\u30bf\u30eb\uff09\u306fJava\u3067\u5b9f\u88c5\u3055\u308c\u3066\u304a\u308a\u3001JBoss, Apache Tomcat, WebSphere\u306a\u3069\u591a\u304f\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u3084Web\u30b3\u30f3\u30c6\u30ca\u4e0a\u3067\u52d5\u4f5c\u3057\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Liferay Portal\uff08\u30e9\u30a4\u30d5\u30ec\u30a4 \u30dd\u30fc\u30bf\u30eb\uff09\u306e\u6982\u8981<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">liferay<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">8080:8080\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">SETUP_WIZARD_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${SETUP_WIZARD_ENABLED}<\/span>\r\n    <span class=\"na\">DB_KIND<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql<\/span>\r\n    <span class=\"na\">DB_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">liferaydb<\/span>\r\n    <span class=\"na\">DB_USERNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${MYSQL_USER}<\/span>\r\n    <span class=\"na\">DB_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${MYSQL_PASSWORD}<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rsippl\/liferay:7.0.0-2<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">mysql:liferaydb<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">mysql<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${MYSQL_ROOT_PASSWORD}<\/span>\r\n    <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${MYSQL_DATABASE}<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${MYSQL_USER}<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${MYSQL_PASSWORD}<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">--character-set-server=utf8<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">--collation-server=utf8_general_ci<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql:5.6.30<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<\/code><\/pre>\n<h2>\u65e5\u5fd7\u9a71\u52a8<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">go\u3067\u66f8\u304b\u308c\u305f log analyzer \u306e\u3088\u3046\u3067\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">logmatic.io<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">logmatic-agent<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">logmatic\/logmatic-docker<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/usr\/src\/app\/index.js<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${logmatic_key} ${opts_args}<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/proc\/:\/host\/proc\/:ro<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/sys\/fs\/cgroup\/:\/host\/sys\/fs\/cgroup:ro<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u65e5\u5fd7\u55b7\u5410<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/158-0.png\" alt=\"community-logspout.1.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30db\u30b9\u30c8\u5185\u3067\u52d5\u304b\u3057\u305f\u5168\u3066\u306eDocker\u30b3\u30f3\u30c6\u30ca\u306e\u51fa\u529b\u3092\u96c6\u7d04\u3057\u3066\uff0c\u597d\u304d\u306a\u3068\u3053\u308d\u306b\u98db\u3070\u3059\uff08\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3059\u308b\uff09\u305f\u3081\u306e\u30c4\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">logspout\u3067Docker\u30b3\u30f3\u30c6\u30ca\u306e\u30ed\u30b0\u306e\u96c6\u7d04\u30fb\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">logspout \u3067 CoreOS \u4e0a\u306e Docker \u30b3\u30f3\u30c6\u30ca\u306e\u30ed\u30b0\u3092\u96c6\u7d04\u30fb\u30eb\u30fc\u30c6\u30a3\u30f3\u30b0\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">logspout<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">ROUTE_URIS<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${route_uri}\"<\/span>\r\n    <span class=\"na\">LOGSPOUT<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">ignore'<\/span>\r\n    <span class=\"na\">SYSLOG_HOSTNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${envname}\"<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">bekt\/logspout-logstash:latest<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<\/code><\/pre>\n<h2>\u65e5\u5fd7\u805a\u5408\u5668<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/162-0.png\" alt=\"community-logstash.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Elastic\u793e\u304c\u63d0\u4f9b\u3059\u308b\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30ed\u30b0\u53ce\u96c6\u7ba1\u7406\u30c4\u30fc\u30eb\u3067\u3059\u3002\u30ed\u30b0\u3092\u53ce\u96c6\u3057\u30011\u3064\u306e\u30b5\u30fc\u30d0\u306b\u96c6\u7d04\u3057\u3066\u7ba1\u7406\u3057\u307e\u3059\u3002\u4e3b\u306b\u3001Elastic\u793e\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u691c\u7d22\u30a8\u30f3\u30b8\u30f3\u300cElasticsearch\u300d\u3068\u306e\u30bb\u30c3\u30c8\u3067\u306e\u4f7f\u7528\u3092\u60f3\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">ELK(ElasticSearch, Logstash, Kibana)+fluentd\u306e\u74b0\u5883\u3092Docker Compose\u3067\u69cb\u7bc9\u3057\u3064\u3064\u3001\u8a66\u3057\u306bCloudWatch\u306e\u7d71\u8a08\u30c7\u30fc\u30bf\u3092\u53ce\u96c6\u3057\u3066\u307f\u305f<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">logstash-indexer-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/logstash-config:v0.2.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n<span class=\"na\">redis<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis:3.2.6-alpine<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n<span class=\"na\">logstash-indexer<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">logstash-indexer-config<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">logstash<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">-f<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/logstash<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">logstash:5.1.1-alpine<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">redis:redis<\/span>\r\n  <span class=\"na\">external_links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${elasticsearch_link}:elasticsearch<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">logstash-indexer-config<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n<span class=\"na\">logstash-collector-config<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/logstash-config:v0.2.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n<span class=\"na\">logstash-collector<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">redis:redis<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">5000\/udp\"<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">6000\/tcp\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">logstash-collector-config<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">logstash<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">-f<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/logstash<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">logstash:5.1.1-alpine<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">logstash-collector-config<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n<\/code><\/pre>\n<h2>MariaDB Galera \u96c6\u7fa4<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/166-0.png\" alt=\"community-galera.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">MySQL (MariaDB) \u306e\u5197\u9577\u5316\u3067\u540c\u671f\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u7528\u3044\u305f\u30de\u30eb\u30c1\u30de\u30b9\u30bf\u578b\u306e\u30af\u30e9\u30b9\u30bf\u3092\u7d44\u3080\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">docker run\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3 MariaDB Galera Cluster 5.5 (kudotty\/mariadb-galeracluster-5.5)<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">mariadb-galera-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/galera:10.0.22-rancher2<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:galera\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">TERM<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">xterm\"<\/span>\r\n    <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${mysql_root_password}\"<\/span>\r\n    <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${mysql_database}\"<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${mysql_user}\"<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${mysql_password}\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">mariadb-galera-data'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">bash -x \/opt\/rancher\/start_galera<\/span>\r\n<span class=\"na\">mariadb-galera-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/galera:10.0.22-rancher2<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_ALLOW_EMPTY_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">yes\"<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/mysql<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/mysql\/conf.d<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/docker-entrypoint-initdb.d<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">galera-leader-forwarder<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/galera-leader-proxy:v0.1.0<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:galera\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">mariadb-galera-data'<\/span>\r\n<span class=\"na\">galera<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/galera-conf:v0.2.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mariadb-galera-data,mariadb-galera-server,galera-leader-forwarder<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">mariadb-galera-data'<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/bash<\/span>\r\n\r\n<span class=\"na\">galera-lb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">3306:3307\/tcp<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">galera:galera<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u6211\u7684\u4e16\u754c<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/170-0.png\" alt=\"community-minecraft.png\" \/><\/div>\n<ul class=\"post-ul\">\u3053\u308c\u3067\u30de\u30a4\u30f3\u30af\u30e9\u30d5\u30c8\u304c\u3044\u3064\u3067\u3082\u904a\u3079\u307e\u3059<\/ul>\n<pre class=\"post-pre\"><code>\r\n<span class=\"na\">Minecraft<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">EULA<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">VERSION<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">DIFFICULTY<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">MODE<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">LEVEL_TYPE<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">GENERATOR_SETTINGS<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">PVP<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">WHITELIST<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">OPS<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">MOTD<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SEED<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">WORLD<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">itzg\/minecraft-server<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">MinecraftData<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">MinecraftData<\/span>\r\n\r\n<span class=\"na\">MinecraftData<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${DATA_VOLUME}\/data<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VOLUME_DRIVER}<\/span>\r\n\r\n<span class=\"na\">MinecraftLB<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PORT}:25565\/tcp<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">Minecraft:Minecraft<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<\/code><\/pre>\n<h2>\u8499\u53e4\u6570\u636e\u5e93<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/174-0.png\" alt=\"community-MongoDB.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">RDBMS\u3067\u306f\u306a\u304f\u3001\u3044\u308f\u3086\u308bNoSQL\u3068\u547c\u3070\u308c\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u5206\u985e\u3055\u308c\u308b\u3082\u306e<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">fig\/docker-compose\u4e8b\u59cb\u3081<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">mongo-cluster<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MONGO_SERVICE_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mongo-cluster<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/opt\/rancher\/bin\/entrypoint.sh<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">--replSet<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${replset_name}\"<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mongo:3.2<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label: ${host_label}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mongo-base, mongo-datavolume<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">mongo-datavolume<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">mongo-base<\/span>\r\n<span class=\"na\">mongo-base<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label: ${host_label}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/mongodb-conf:v0.1.0<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n<span class=\"na\">mongo-datavolume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label: ${host_label}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/data\/db<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u5495\u54dd<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/178-0.png\" alt=\"community-mumble.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u591a\u4eba\u6570\u3067\u3082\u9045\u5ef6\u306a\u3057\u3067\u8efd\u5feb\u306b\u4f7f\u3048\u308b\u30dc\u30a4\u30b9\u30c1\u30e3\u30c3\u30c8<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u300cMumble\u300d \u306e\u4f7f\u3044\u65b9<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">mumble<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ranchercb\/murmur:latest<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">64738:64738<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">64738:64738\/udp<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Netdata \u7f51\u7edc\u6570\u636e<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/182-0.png\" alt=\"community-netdata.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">netdata\u306f\u3001Zabbix\u3084Nagios\u306a\u3069\u306e\u76e3\u8996\u30c4\u30fc\u30eb\u3068\u306f\u7570\u306a\u308a\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u304c\u3067\u304d\u308b\u30c4\u30fc\u30eb\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u306a\u30ea\u30bd\u30fc\u30b9\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u30c4\u30fc\u30eb\u306enetdata\u3092\u8a66\u3057\u3066\u307f\u305f<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">netdata\u3092\u4f7f\u3063\u3066\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u53ef\u8996\u5316\u3057\u3066\u307f\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">netdata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">titpetric\/netdata:latest<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">cap_add<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">SYS_PTRACE<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/proc:\/host\/proc:ro<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/sys:\/host\/sys:ro<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">NETDATA_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${NETDATA_PORT}\"<\/span>\r\n<\/code><\/pre>\n<h2>Nuxeo (\u8bfa\u8d1d\u58f3)<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/186-0.png\" alt=\"community-nuxeo.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\u3053\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306fNuxeo\u30b5\u30fc\u30d0\u30fc\u3092\u3059\u3079\u3066\u306e\u30b3\u30f3\u30d1\u30cb\u30aa\u30f3\uff08Elasticsearch\u3001Redis\u3001Postgres\uff09\u3068\u5171\u306b\u5c55\u958b\u3057\u3001Nuxeo\u3092\u3042\u306a\u305f\u306e\u4e0a\u3067\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">postgres-datavolume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nuxeo\/postgres<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">chown -R postgres:postgres \/var\/lib\/postgresql\/data<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volumedriver}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/postgresql\/data<\/span>\r\n\r\n<span class=\"na\">postgres<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nuxeo\/postgres<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">POSTGRES_USER=nuxeo<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">POSTGRES_PASSWORD=nuxeo<\/span>    \r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres-datavolume<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">postgres-datavolume<\/span>\r\n\r\n<span class=\"c1\"># Copied from default Rancher ES Stack : don't modifiy service names<\/span>\r\n<span class=\"na\">elasticsearch-masters<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/elasticsearch-conf:v0.4.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch-base-master,elasticsearch-datavolume-masters<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volumedriver}<\/span>\r\n<span class=\"na\">elasticsearch-datavolume-masters<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.datanode.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:1.7.3<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volumedriver}<\/span>\r\n<span class=\"na\">elasticsearch-base-master<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">elasticsearch.master.config.version<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">0'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:1.7.3<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:elasticsearch-masters\"<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-datavolume-masters<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin\/run.sh<\/span>\r\n\r\n\r\n<span class=\"na\">redis<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>    \r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis:3.0.3<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volumedriver}<\/span>\r\n\r\n<span class=\"na\">nuxeo-datavolume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nuxeo<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volumedriver}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/nuxeo\/data<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/log\/nuxeo<\/span>\r\n\r\n<span class=\"na\">nuxeo<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">NUXEO_CLID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${clid}<\/span>\r\n    <span class=\"na\">NUXEO_PACKAGES<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${packages}<\/span>\r\n    <span class=\"na\">NUXEO_DB_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres<\/span>\r\n    <span class=\"na\">NUXEO_DB_TYPE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgresql<\/span>\r\n    <span class=\"na\">NUXEO_ES_HOSTS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">elasticsearch:9300<\/span>\r\n    <span class=\"na\">NUXEO_DATA<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/data\/nuxeo\/data\/<\/span>\r\n    <span class=\"na\">NUXEO_LOG<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/data\/nuxeo\/log\/<\/span>\r\n    <span class=\"na\">NUXEO_REDIS_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis<\/span>\r\n    <span class=\"na\">NUXEO_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${url}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nuxeo-datavolume<\/span>    \r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nuxeo:FT<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">redis:redis<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">postgres:postgres<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">elasticsearch-masters:elasticsearch<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">nuxeo-datavolume<\/span>\r\n\r\n<span class=\"na\">lb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">80:8080<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">nuxeo:nuxeo<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u5965\u675c(Odoo)<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/190-0.png\" alt=\"community-odoo.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Odoo\uff08\u65e7\u79f0OpenERP\uff09\u306f\u30d9\u30eb\u30ae\u30fc\u306eOpenERP S.A.\u793e\u306b\u3088\u308a\u958b\u767a\u3068\u308a\u307e\u3068\u3081\u304c\u884c\u308f\u308c\u3066\u3044\u308b\u3001\u4e16\u754c\u3067\u5927\u4eba\u6c17\u306e\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u696d\u52d9\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b9\u30a4\u30fc\u30c8\u3067\u3059\u3002\u6a5f\u80fd\u3092\u8c4a\u5bcc\u306b\u5099\u3048\u3001\u64cd\u4f5c\u6027\u3001\u62e1\u5f35\u6027\u3001\u4fdd\u5b88\u6027\u306e\u5404\u9762\u3067\u512a\u308c\u3066\u304a\u308a\u3001\u5727\u5012\u7684\u306a\u30b3\u30b9\u30c8\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u8a87\u308a\u307e\u3059\u3002\u30ab\u30d0\u30fc\u9818\u57df\u306f\u3001\u5f93\u6765\u306eERP\u30d1\u30c3\u30b1\u30fc\u30b8\u5b88\u5099\u7bc4\u56f2\u3092\u3082\u306f\u3084\u8d8a\u3048\u3001CMS\u3001E\u30b3\u30de\u30fc\u30b9\u3001\u30a4\u30d9\u30f3\u30c8\u7ba1\u7406\u7b49\u3001\u591a\u5c90\u306b\u4e98\u308a\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Odoo8\u30d7\u30e9\u30b0\u30a4\u30f3\u5168\u90e8\u5165\u308a\u30a4\u30e1\u30fc\u30b8\u4f5c\u3063\u305f(896.4 MB)<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">odoo<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">odoo<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">8069:8069\"<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">db<\/span>\r\n<span class=\"na\">db<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">POSTGRES_USER=odoo<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">POSTGRES_PASSWORD=odoo<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u5f00\u653e\u5f0f\u865a\u62df\u4e13\u7528\u7f51\u7edc<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/194-0.png\" alt=\"community-openvpn-httpbasic.png.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u63a5\u7d9a\u3057\u3066\u3044\u308bPC\u304c1\u53f0\u3042\u308c\u3070\u3001VPN\u30b5\u30fc\u30d0\u30fc\u304c\u8a2d\u7f6e\u3067\u304d\u307e\u3059\uff08\u81ea\u793e\u5185\u30b5\u30fc\u30d0\u30fc\u306f\u3082\u3061\u308d\u3093\u3001\u30ec\u30f3\u30bf\u30ebVPS\u306a\u3069\u3067\u904b\u7528\u3057\u3066\u3044\u308b\u30b1\u30fc\u30b9\u3082\u3042\u308a\u307e\u3059\uff09\u3002\u7279\u5b9a\u306e\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u30d7\u30ed\u30d0\u30a4\u30c0\u306a\u3069\u306e\u5236\u7d04\u3082\u3042\u308a\u307e\u305b\u3093\u3002\u3053\u306e\u3088\u3046\u306a\u512a\u308c\u305f\u7279\u5fb4\u304b\u3089\u3001\u500b\u4eba\u30e6\u30fc\u30b6\u30fc\u3084\u4e2d\u5c0f\u4f01\u696d\u3067\u306e\u5c0e\u5165\u306b\u9069\u3057\u3066\u3044\u307e\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">docker\u3067vpn\u30b5\u30fc\u30d0\u30fc\u3092\u305f\u3066\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">openvpn-httpbasic-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/openvpn\/<\/span>\r\n\r\n<span class=\"na\">openvpn-httpbasic-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">1194:1194\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">AUTH_METHOD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">httpbasic<\/span>\r\n    <span class=\"na\">AUTH_HTTPBASIC_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AUTH_HTTPBASIC_URL}<\/span>\r\n    <span class=\"na\">CERT_COUNTRY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_COUNTRY}<\/span>\r\n    <span class=\"na\">CERT_PROVINCE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_PROVINCE}<\/span>\r\n    <span class=\"na\">CERT_CITY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_CITY}<\/span>\r\n    <span class=\"na\">CERT_ORG<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_ORG}<\/span>\r\n    <span class=\"na\">CERT_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_EMAIL}<\/span>\r\n    <span class=\"na\">CERT_OU<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_OU}<\/span>\r\n    <span class=\"na\">REMOTE_IP<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${REMOTE_IP}<\/span>\r\n    <span class=\"na\">REMOTE_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${REMOTE_PORT}<\/span>\r\n    <span class=\"na\">VPNPOOL_NETWORK<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VPNPOOL_NETWORK}<\/span>\r\n    <span class=\"na\">VPNPOOL_CIDR<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VPNPOOL_CIDR}<\/span>\r\n    <span class=\"na\">OPENVPN_EXTRACONF<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${OPENVPN_EXTRACONF}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">openvpn-httpbasic-data<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mdns\/rancher-openvpn:1.0<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">openvpn-httpbasic-data<\/span>\r\n<\/code><\/pre>\n<h2>OpenVPN-httpdigest\u5f00\u653e\u5f0f\u865a\u62df\u4e13\u7528\u7f51\u7edc<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/198-0.png\" alt=\"community-openvpn-httpbasic.png.png\" \/><\/div>\n<p>Digest\u8a8d\u8a3c\u3067OpenVPN\u3092\u4f7f\u7528\u3067\u304d\u308b<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">openvpn-httpdigest-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/openvpn\/<\/span>\r\n\r\n<span class=\"na\">openvpn-httpdigest-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">1194:1194\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">AUTH_METHOD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">httpdigest<\/span>\r\n    <span class=\"na\">AUTH_HTTPDIGEST_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AUTH_HTTPDIGEST_URL}<\/span>\r\n    <span class=\"na\">CERT_COUNTRY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_COUNTRY}<\/span>\r\n    <span class=\"na\">CERT_PROVINCE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_PROVINCE}<\/span>\r\n    <span class=\"na\">CERT_CITY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_CITY}<\/span>\r\n    <span class=\"na\">CERT_ORG<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_ORG}<\/span>\r\n    <span class=\"na\">CERT_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_EMAIL}<\/span>\r\n    <span class=\"na\">CERT_OU<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_OU}<\/span>\r\n    <span class=\"na\">REMOTE_IP<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${REMOTE_IP}<\/span>\r\n    <span class=\"na\">REMOTE_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${REMOTE_PORT}<\/span>\r\n    <span class=\"na\">VPNPOOL_NETWORK<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VPNPOOL_NETWORK}<\/span>\r\n    <span class=\"na\">VPNPOOL_CIDR<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VPNPOOL_CIDR}<\/span>\r\n    <span class=\"na\">OPENVPN_EXTRACONF<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${OPENVPN_EXTRACONF}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">openvpn-httpdigest-data<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mdns\/rancher-openvpn:1.0<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">openvpn-httpdigest-data<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u5f00\u653e\u5f0f\u865a\u62df\u4e13\u7528\u7f51\u7edc-\u8f7b\u91cf\u7ea7\u76ee\u5f55\u8bbf\u95ee\u534f\u8bae<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/202-0.png\" alt=\"community-openvpn-httpbasic.png.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">LDAP\u30a2\u30ab\u30a6\u30f3\u30c8\u3067OpenVPN\u3092\u4f7f\u7528\u3067\u304d\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">OpenVPN\u306b\u30e6\u30fc\u30b6\u30fc\/\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u30ed\u30b0\u30a4\u30f3(LDAP\u8a8d\u8a3c)<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">openvpn-ldap-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/openvpn\/<\/span>\r\n\r\n<span class=\"na\">openvpn-ldap-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">1194:1194\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">AUTH_METHOD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">ldap<\/span>\r\n    <span class=\"na\">AUTH_LDAP_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AUTH_LDAP_URL}<\/span>\r\n    <span class=\"na\">AUTH_LDAP_BASEDN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AUTH_LDAP_BASEDN}<\/span>\r\n    <span class=\"na\">AUTH_LDAP_SEARCH<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AUTH_LDAP_SEARCH}<\/span>\r\n    <span class=\"na\">AUTH_LDAP_BINDDN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AUTH_LDAP_BINDDN}<\/span>\r\n    <span class=\"na\">AUTH_LDAP_BINDPWD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AUTH_LDAP_BINDPWD}<\/span>\r\n    <span class=\"na\">CERT_COUNTRY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_COUNTRY}<\/span>\r\n    <span class=\"na\">CERT_PROVINCE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_PROVINCE}<\/span>\r\n    <span class=\"na\">CERT_CITY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_CITY}<\/span>\r\n    <span class=\"na\">CERT_ORG<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_ORG}<\/span>\r\n    <span class=\"na\">CERT_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_EMAIL}<\/span>\r\n    <span class=\"na\">CERT_OU<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CERT_OU}<\/span>\r\n    <span class=\"na\">REMOTE_IP<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${REMOTE_IP}<\/span>\r\n    <span class=\"na\">REMOTE_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${REMOTE_PORT}<\/span>\r\n    <span class=\"na\">VPNPOOL_NETWORK<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VPNPOOL_NETWORK}<\/span>\r\n    <span class=\"na\">VPNPOOL_CIDR<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VPNPOOL_CIDR}<\/span>\r\n    <span class=\"na\">OPENVPN_EXTRACONF<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${OPENVPN_EXTRACONF}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">openvpn-ldap-data<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mdns\/rancher-openvpn:1.0<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">openvpn-ldap-data<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u79c1\u6709\u4e91<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/206-0.png\" alt=\"community-owncloud.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Dropbox \u306e\u3088\u3046\u306a\u30aa\u30f3\u30e9\u30a4\u30f3\u30b9\u30c8\u30ec\u30fc\u30b8\u30b5\u30fc\u30d3\u30b9\u3092\u7c21\u5358\u306b\u69cb\u7bc9\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">ownCloud \u306e Docker \u30b3\u30f3\u30c6\u30ca\u3092\u4f5c\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">owncloud<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">owncloud<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">80:80\"<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">db<\/span>\r\n\r\n<span class=\"na\">db<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mariadb<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">MYSQL_ROOT_PASSWORD=password<\/span>\r\n<\/code><\/pre>\n<h2>Percona XtraDB \u96c6\u7fa4<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/210-0.png\" alt=\"community-pxc.1.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30de\u30eb\u30c1\u30de\u30b9\u30bf\u3067\u30af\u30e9\u30b9\u30bf\u69cb\u7bc9\u304c\u53ef\u80fd\u306aMySQL\u4e92\u63dbRDBMS\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Percona XtraDB Cluster\u3092Docker\u3067\u69cb\u7bc9\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">pxc-clustercheck<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">flowman\/percona-xtradb-cluster-clustercheck:v2.0<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:pxc\"<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">pxc-data'<\/span>    \r\n<span class=\"na\">pxc-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">flowman\/percona-xtradb-cluster:5.6.28-1<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:pxc\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${mysql_root_password}\"<\/span>\r\n    <span class=\"na\">PXC_SST_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${pxc_sst_password}\"<\/span>\r\n    <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${mysql_database}\"<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${mysql_user}\"<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${mysql_password}\"<\/span>    \r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">pxc-data'<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">bash -x \/opt\/rancher\/start_pxc<\/span>\r\n<span class=\"na\">pxc-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">flowman\/percona-xtradb-cluster:5.6.28-1<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_ALLOW_EMPTY_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">yes\"<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/mysql<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/mysql\/conf.d<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/docker-entrypoint-initdb.d<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>    \r\n<span class=\"na\">pxc<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">flowman\/percona-xtradb-cluster-confd:v0.2.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">pxc-clustercheck,pxc-server,pxc-data<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s1\">'<\/span><span class=\"s\">pxc-data'<\/span>\r\n\r\n<\/code><\/pre>\n<h2>PHP \u7ba1\u7406\u8005<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/214-0.png\" alt=\"community-adminer.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Adminer\u306f\u3001PHP\u3067\u4f5c\u3089\u308c\u3066\u3044\u308b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u7ba1\u7406\u30c4\u30fc\u30eb\u3067\u3059\u3002(Apache License or GPL 2)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">phpMyAdmin\u306e\u3088\u3046\u306bWeb\u4e0a\u3067MySQL\u306a\u3069\u203b\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u64cd\u4f5c\u3067\u304d\u308b (\u4e00\u901a\u308a\u306e\u3053\u3068\u306f\u3067\u304d\u308b)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">MySQL\u4ee5\u5916\u3067\u4f7f\u7528\u3057\u305f\u3053\u3068\u306f\u306a\u3044\u3067\u3059\u304c\u3001\u516c\u5f0f\u3067\u306f\u4e0b\u8a18\u306e\u5bfe\u5fdc\u3092\u8b33\u3063\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">MySQL, PostgreSQL, SQLite, MS SQL, Oracle, Firebird, SimpleDB, Elasticsearch, MongoDB<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">1\u30d5\u30a1\u30a4\u30eb\u3067\u4f5c\u6210\u3055\u308c\u3066\u3044\u308b\u305f\u3081\u8a2d\u7f6e\u304c\u7c21\u5358<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Adminer\u3092\u8a2d\u7f6e\u3059\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">adminer<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">clue\/adminer:latest'<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">on-failure<\/span>\r\n<\/code><\/pre>\n<h2>Plone 5.0 \u4e94\u70b9\u96f6\u7248<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/218-0.png\" alt=\"community-plone.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Plone \u306f WordPress \u3068\u9055\u3044\u300cPython\u300d\uff0b\u300c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b5\u30fc\u30d0\u300d\uff0b\u300cDBMS\u300d\uff0b\u300cCMS \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u300d\u3092\u4e00\u5ea6\u306b\u3059\u3079\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3067\u3001\u300cPHP\u300d\uff0b\u300cWeb \u30b5\u30fc\u30d0\u300d\uff0b\u300cMySQL\u300d\u3092\u5225\u9014\u7528\u610f\u3057\u306a\u3051\u308c\u3070\u306a\u3089\u306a\u3044 WordPress \u3088\u308a\u5c0e\u5165\u305d\u306e\u3082\u306e\u306f\u7c21\u5358\u306b\u3067\u304d\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Yet Another \u4ed5\u4e8b\u306e\u30c4\u30fc\u30eb<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">zeoserver<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">plone:5.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label: ${host_label}<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.community.plone=true<\/span>\r\n    <span class=\"s\">io.rancher.community.plone<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${volume_name}:\/data<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${volume_driver}<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">[<\/span><span class=\"s2\">\"<\/span><span class=\"s\">zeoserver\"<\/span><span class=\"pi\">]<\/span>\r\n\r\n<span class=\"na\">plone<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">plone:5.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label: ${host_label}<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.community.plone=true<\/span>\r\n    <span class=\"s\">io.rancher.community.plone<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">zeoserver:zeoserver<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">ADDONS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${addons}<\/span>\r\n    <span class=\"na\">ZEO_ADDRESS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">zeoserver:8100<\/span>\r\n\r\n<span class=\"na\">lb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label: ${host_label}<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft_ne: io.rancher.community.plone=true<\/span>\r\n    <span class=\"s\">io.rancher.community.plone<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">plone:plone<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:8080<\/span>\r\n\r\n<\/code><\/pre>\n<h2>PointHQ DNS \u70b9\u4e91\u57df\u540d\u89e3\u6790<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/222-0.png\" alt=\"community-infra-pointhq.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">1\u30a2\u30d7\u30ea\u6bce\u30671\u30c9\u30e1\u30a4\u30f3\u306b\u3064\u304d10\u30ec\u30b3\u30fc\u30c9\u307e\u3067\u7121\u6599\u3067\u767b\u9332\u3067\u304d\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u7ba1\u7406\u753b\u9762\u304b\u3089\u30c9\u30e1\u30a4\u30f3\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u6570\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">PointDNS\u3067Heroku\u30a2\u30d7\u30ea\u306bNaked domain\u3092\u5272\u308a\u5f53\u3066\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">pointhq<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/external-dns:v0.2.1<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">--provider pointhq<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span> \r\n   <span class=\"pi\">-<\/span> <span class=\"m\">1000<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">POINTHQ_TOKEN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${POINTHQ_TOKEN}<\/span>\r\n    <span class=\"na\">POINTHQ_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${POINTHQ_EMAIL}<\/span>\r\n    <span class=\"na\">ROOT_DOMAIN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOT_DOMAIN}<\/span>\r\n    <span class=\"na\">TTL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${TTL}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n    <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">external-dns\"<\/span>\r\n\r\n<\/code><\/pre>\n<h2>PowerDNS \u53ef\u4ee5\u88ab\u89e3\u91ca\u4e3a\uff1a\u201c\u7535\u6e90\u57df\u540d\u79f0\u7cfb\u7edf\u201d<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/226-0.png\" alt=\"community-infra-powerdns-external-dns.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">PowerDNS\u3068\u306f\u3001\u30aa\u30e9\u30f3\u30c0\u306ePowerDNS.COM BV\u304c\u958b\u767a\u3092\u884c\u3063\u305f\u3001\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306eDNS\u30b5\u30fc\u30d0\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4e45\u3057\u3076\u308a\u306bPowerDNS\u3092\u3055\u308f\u308b<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">PowerDNS\u3067DNS\u30b5\u30fc\u30d0\u30fc\u3092\u4f5c\u308b\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">powerdns<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/external-dns:v0.5.0<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">-provider=powerdns\"<\/span>\r\n  <span class=\"na\">expose<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"m\">1000<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">POWERDNS_API_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${POWERDNS_API_KEY}<\/span>\r\n    <span class=\"na\">POWERDNS_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${POWERDNS_URL}<\/span>\r\n    <span class=\"na\">ROOT_DOMAIN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOT_DOMAIN}<\/span>\r\n    <span class=\"na\">TTL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${TTL}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n    <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">external-dns\"<\/span>\r\n<\/code><\/pre>\n<h2>\u666e\u7f57\u7c73\u4fee\u65af<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/230-0.png\" alt=\"community-Prometheus.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30b5\u30fc\u30d3\u30b9\u76e3\u8996\u30b7\u30b9\u30c6\u30e0\u3068\u6642\u7cfb\u5217\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3010Docker\u3011&#8221;\u307e\u305f\u6b7b\u3093\u3067\u308b\uff01\uff01&#8221;\u30b3\u30f3\u30c6\u30ca\u306e\u6b7b\u6d3b\u7ba1\u7406\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fc<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3010\u5165\u9580\u3011Prometheus\u3067\u30b5\u30fc\u30d0\u3084Docker\u30b3\u30f3\u30c6\u30ca\u306e\u30ea\u30bd\u30fc\u30b9\u76e3\u8996<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">prometheus\u306eexporter\u306ecollectd-exporter\u3092docker\u3067\u3061\u3087\u308d\u3063\u3068\u52d5\u304b\u3057\u3066\u307f\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">cadvisor<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">google\/cadvisor:latest<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/:\/rootfs:ro\"<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/var\/run:\/var\/run:rw\"<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/sys:\/sys:ro\"<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/var\/lib\/docker\/:\/var\/lib\/docker:ro\"<\/span>\r\n\r\n<span class=\"na\">node-exporter<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prom\/node-exporter:latest<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n\r\n<span class=\"na\">prom-conf<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">infinityworks\/prom-conf:17<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/prom-conf\/<\/span>\r\n    <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n\r\n<span class=\"na\">prometheus<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prom\/prometheus:v1.4.1<\/span>\r\n    <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">-alertmanager.url=http:\/\/alertmanager:9093 -config.file=\/etc\/prom-conf\/prometheus.yml -storage.local.path=\/prometheus -web.console.libraries=\/etc\/prometheus\/console_libraries -web.console.templates=\/etc\/prometheus\/consoles<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">9090:9090<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">prom-conf<\/span>\r\n    <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n       <span class=\"pi\">-<\/span> <span class=\"s\">prom-conf<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">cadvisor:cadvisor<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">node-exporter:node-exporter<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">prometheus-rancher-exporter:prometheus-rancher-exporter<\/span>\r\n\r\n<span class=\"na\">influxdb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">tutum\/influxdb:0.10<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">2003:2003<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">PRE_CREATE_DB=grafana;prometheus;rancher<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">GRAPHITE_DB=rancher<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">GRAPHITE_BINDING=:2003<\/span>\r\n\r\n<span class=\"na\">graf-db<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">infinityworks\/graf-db:10<\/span>\r\n    <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">cat<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/grafana\/<\/span>\r\n    <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n\r\n<span class=\"na\">grafana<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">grafana\/grafana:4.0.2<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">3000:3000<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">graf-db<\/span>\r\n    <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n       <span class=\"pi\">-<\/span> <span class=\"s\">graf-db<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">prometheus:prometheus<\/span>\r\n      <span class=\"pi\">-<\/span> <span class=\"s\">prometheus-rancher-exporter:prometheus-rancher-exporter<\/span>\r\n\r\n<span class=\"na\">prometheus-rancher-exporter<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n      <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s\">environment<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">infinityworks\/prometheus-rancher-exporter:v0.22.40<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u6728\u5076 4.x\uff08\u72ec\u7acb\u7248\uff09<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/234-0.png\" alt=\"community-puppet-standalone.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306a\u30b7\u30b9\u30c6\u30e0\u81ea\u52d5\u7ba1\u7406\u30c4\u30fc\u30eb Puppet<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Puppet\u306fRuby\u3067\u3067\u304d\u305f\uff0cUNIX\u7cfbOS\u306e\u30b7\u30b9\u30c6\u30e0\u7ba1\u7406\u3092\u81ea\u52d5\u3067\u884c\u3046\u305f\u3081\u306e\u30c4\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Puppet\u5c0e\u5165\u524d\u306b\u77e5\u308a\u305f\u304b\u3063\u305f\u3053\u3068<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">puppet-lb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PUPPET_PORT}:8140\/tcp<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.loadbalancer.target.puppet<\/span><span class=\"pi\">:<\/span> <span class=\"s\">8140=${PUPPET_PORT}<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">puppet:puppet<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n\r\n<span class=\"na\">puppet<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">hostname<\/span><span class=\"pi\">:<\/span> <span class=\"s\">puppet<\/span>\r\n  <span class=\"na\">domainname<\/span><span class=\"pi\">:<\/span> <span class=\"s\">puppet.rancher.internal<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">puppet-config-volumes<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nrvale0\/puppetserver-standalone<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CONTROL_REPO_GIT_URI=${CONTROL_REPO_GIT_URI}<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">puppet-config-volumes<\/span>\r\n\r\n<span class=\"na\">puppet-config-volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/puppetlabs\/ssl<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/puppetlabs\/r10k\/cache<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/puppetlabs\/code<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">alpine<\/span>\r\n<\/code><\/pre>\n<h2>PX \u5f00\u53d1<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/238-0.png\" alt=\"687474703a2f2f692e696d6775722e636f6d2f6c384a526878672e6a7067.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">PX-Developer\uff08PX-Dev\uff09\u306f\u3001\u30b3\u30f3\u30c6\u30ca\u306e\u30b9\u30b1\u30fc\u30eb\u30a2\u30a6\u30c8\u30b9\u30c8\u30ec\u30fc\u30b8\u3068\u30c7\u30fc\u30bf\u30b5\u30fc\u30d3\u30b9\u3067\u3059\u3002 PX-Dev\u81ea\u4f53\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b9\u30bf\u30c3\u30af\u3068\u3068\u3082\u306b\u30b3\u30f3\u30c6\u30ca\u3068\u3057\u3066\u5c55\u958b\u3055\u308c\u307e\u3059\u3002 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b9\u30bf\u30c3\u30af\u3067PX-Dev\u3092\u5b9f\u884c\u3059\u308b\u3053\u3068\u3067\u3001\u30b9\u30b1\u30fc\u30eb\u30a2\u30a6\u30c8\u74b0\u5883\u3067\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u6c38\u7d9a\u6027\u3001\u5bb9\u91cf\u7ba1\u7406\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3001\u53ef\u7528\u6027\u3092\u30b3\u30f3\u30c6\u30ca\u5358\u4f4d\u3067\u5236\u5fa1\u3067\u304d\u307e\u3059\u3002 Docker Engine\u3092\u642d\u8f09\u3057\u305f\u30b5\u30fc\u30d0\u30fc\u306bPX-Developer\u30b3\u30f3\u30c6\u30ca\u3092\u5c55\u958b\u3059\u308b\u3068\u3001\u305d\u306e\u30b5\u30fc\u30d0\u30fc\u306f\u30b9\u30b1\u30fc\u30eb\u30a2\u30a6\u30c8\u3055\u308c\u305f\u30b9\u30c8\u30ec\u30fc\u30b8\u30ce\u30fc\u30c9\u306b\u306a\u308a\u307e\u3059\u3002 \u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u3068\u7d71\u5408\u3055\u308c\u305f\u30b9\u30c8\u30ec\u30fc\u30b8\u306e\u7a3c\u50cd\u306f\u3001\u30d9\u30a2\u30e1\u30bf\u30eb\u99c6\u52d5\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u3082\u305f\u3089\u3057\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">https:\/\/github.com\/portworx\/px-dev<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">portworx<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">always'<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portworx\/px-dev<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">px<\/span>\r\n  <span class=\"na\">ipc<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">CLUSTER_ID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${cluster_id}<\/span>\r\n    <span class=\"na\">KVDB<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${kvdb}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n     <span class=\"pi\">-<\/span> <span class=\"s\">\/dev:\/dev<\/span>\r\n     <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/src:\/usr\/src<\/span>\r\n     <span class=\"pi\">-<\/span> <span class=\"s\">\/run\/docker\/plugins:\/run\/docker\/plugins<\/span>\r\n     <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/osd:\/var\/lib\/osd:shared<\/span>\r\n     <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/pwx:\/etc\/pwx<\/span>\r\n     <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/pwx\/bin:\/export_bin:shared<\/span>\r\n     <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n     <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/cores:\/var\/cores<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">-c ${cluster_id} -k ${kvdb} -a -z -f<\/span>\r\n<\/code><\/pre>\n<h2>\u7ffb\u8bd1\u4e3a\u4e2d\u6587\uff1aQuasarDB<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/242-0.png\" alt=\"community-quasardb-community.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">quasardb\u306f\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u89e3\u6790\u7528\u306b\u6700\u9069\u5316\u3055\u308c\u305f\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u5b9a\u7fa9\u306e\u30b9\u30c8\u30ec\u30fc\u30b8\u30c6\u30af\u30ce\u30ed\u30b8\u3067\u3059\u3002\u30d5\u30a1\u30a4\u30eb\u30b7\u30b9\u30c6\u30e0\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u9593\u306e\u30ea\u30f3\u30af\u304c\u6b20\u843d\u3057\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">quasardb\u30c7\u30fc\u30bf\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u306b\u30d1\u30bf\u30fc\u30f3\u3092\u5f37\u5236\u3057\u307e\u305b\u3093\u3002 \u30c7\u30fc\u30bf\u306f\u3001Microsoft Excel\u3001ActivePivot\u3001Apache Spark\u306a\u3069\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u30de\u30eb\u30c1\u8a00\u8a9eAPI\u3092\u4f7f\u7528\u3057\u3066\u76f4\u63a5\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">https:\/\/www.quasardb.net\/-what-is-nosql-<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">qdb-ui<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${webport}:${webport}\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">DEVICE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${device}<\/span>\r\n    <span class=\"na\">PEER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">qdb1<\/span>\r\n    <span class=\"na\">PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${qdbport}'<\/span>\r\n    <span class=\"na\">WEBPORT<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${webport}'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.dns<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/start.sh<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">httpd<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">makazi\/quasardb:2.0.0-rc.8<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n\r\n<span class=\"na\">qdb1-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/db\/qdb<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/qdb<\/span>\r\n\r\n<span class=\"na\">qdb2-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/db\/qdb<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/qdb<\/span>\r\n\r\n<span class=\"na\">qdb2<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${qdbport}:${qdbport}\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">ID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">2\/2<\/span>\r\n    <span class=\"na\">DEVICE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${device}<\/span>\r\n    <span class=\"na\">PEER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">qdb1<\/span>\r\n    <span class=\"na\">PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${qdbport}'<\/span>\r\n    <span class=\"na\">REPLICATION<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${replication}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">qdb2-data<\/span>\r\n    <span class=\"s\">io.rancher.container.dns<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/start.sh<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">makazi\/quasardb:2.0.0-rc.8<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">qdb2-data<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n<span class=\"na\">qdb1<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${qdbport}:${qdbport}\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">ID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">1\/2<\/span>\r\n    <span class=\"na\">DEVICE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${device}<\/span>\r\n    <span class=\"na\">PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${qdbport}'<\/span>\r\n    <span class=\"na\">REPLICATION<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${replication}<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">qdb1-data<\/span>\r\n    <span class=\"s\">io.rancher.container.dns<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/start.sh<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">makazi\/quasardb:2.0.0-rc.8<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">qdb1-data<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n<\/code><\/pre>\n<h2>\u5154\u5b50\u6d88\u606f\u961f\u5217<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/246-0.png\" alt=\"community-rabbitmq-3.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">RabbitMQ\u306f\u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30e5\u30fc\u30a4\u30f3\u30b0\u306e\u305f\u3081\u306e\u30df\u30c9\u30eb\u30a6\u30a7\u30a2\u3067\u3059\u3002\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u3067\u516c\u958b\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u65b0\u4eba\u30d7\u30ed\u30b0\u30e9\u30de\u306b\u77e5\u3063\u3066\u3082\u3089\u3044\u305f\u3044RabbitMQ\u521d\u5fc3\u8005\u306e\u5165\u9580\u306e\u5165\u9580<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">13\u65e5\u76ee: RabbitMQ\u306e\u500b\u4eba\u7684\u306b\u96e3\u3057\u304b\u3063\u305f\u7528\u8a9e\u306e\u8aac\u660e<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u306f\u3058\u3081\u3066\u306e RabbitMQ<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">rabbitmq<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rdaneel\/rabbitmq-conf:0.2.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rabbitmq-base,rabbitmq-datavolume<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">rabbitmq-datavolume<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">RABBITMQ_NET_TICKTIME=${net_ticktime}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">RABBITMQ_CLUSTER_PARTITION_HANDLING=${cluster_partition_handling}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">CONFD_ARGS=${confd_args}<\/span>\r\n<span class=\"na\">rabbitmq-datavolume<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/etc\/rabbitmq<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rabbitmq:3.6-management<\/span>\r\n<span class=\"na\">rabbitmq-base<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rabbitmq:3.6-management<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">rabbitmq-datavolume<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">container:rabbitmq\"<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/rancher\/bin\/run.sh<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">RABBITMQ_ERLANG_COOKIE=${erlang_cookie}<\/span>\r\n\r\n\r\n<span class=\"s\">Launch<\/span>\r\n<\/code><\/pre>\n<h2>\u519c\u573a\u4e3b\u5b89\u5168\u57fa\u51c6<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/250-0.png\" alt=\"community-rancher-bench-security.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5404\u30b3\u30f3\u30c6\u30ca\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u72b6\u6cc1\u304c\u898b\u308c\u307e\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30b3\u30f3\u30c6\u30ca\u30fc\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">rancher-bench-security<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">germanramos\/rancher-bench-security:1.11.0<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n  <span class=\"na\">pid<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib:\/var\/lib<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr\/lib\/systemd:\/usr\/lib\/systemd<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/etc:\/etc<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/tmp:\/tmp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">INTERVAL=${INTERVAL}<\/span>\r\n\r\n<span class=\"na\">web-server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">germanramos\/nginx-php-fpm:v5.6.21<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">traefik.enable<\/span><span class=\"pi\">:<\/span> <span class=\"s\">stack<\/span>\r\n    <span class=\"s\">traefik.domain<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${TRAEFIK_DOMAIN}<\/span>\r\n    <span class=\"s\">traefik.port<\/span><span class=\"pi\">:<\/span> <span class=\"m\">80<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/tmp\/cis:\/var\/www\/html<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u767b\u8bb0<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/254-0.png\" alt=\"community-registry.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">private docker hub\u3067\u3059<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">LDAP\u3068\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u9023\u643a\u3067\u304d\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">db<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql:5.7.10<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portus<\/span>\r\n    <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOTPASSWORD}<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portus<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DBPASSWORD}<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${DIR}\/db:\/var\/lib\/mysql<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">registry.portus.db<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n<span class=\"na\">sslproxy<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx:1.9.9<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">portus:portus<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${DIR}\/certs:\/etc\/nginx\/certs:ro<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${DIR}\/proxy:\/etc\/nginx\/conf.d:ro<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft: registry.portus.db=1<\/span>\r\n<span class=\"na\">registry<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">registry:2.3.1<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">REGISTRY_LOG_LEVEL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">warn<\/span>\r\n    <span class=\"na\">REGISTRY_STORAGE_DELETE_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH<\/span><span class=\"pi\">:<\/span> <span class=\"s\">token<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH_TOKEN_REALM<\/span><span class=\"pi\">:<\/span> <span class=\"s\">https:\/\/${DOMAIN}:${PPORT}\/v2\/token<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH_TOKEN_SERVICE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAIN}:${RPORT}<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH_TOKEN_ISSUER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAIN}<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/certs\/registry.crt<\/span>\r\n    <span class=\"na\">REGISTRY_HTTP_TLS_CERTIFICATE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/certs\/registry.crt<\/span>\r\n    <span class=\"na\">REGISTRY_HTTP_TLS_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/certs\/registry.key<\/span>\r\n    <span class=\"na\">REGISTRY_HTTP_SECRET<\/span><span class=\"pi\">:<\/span> <span class=\"s\">httpsecret<\/span>\r\n    <span class=\"na\">REGISTRY_NOTIFICATIONS_ENDPOINTS<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">&gt;<\/span>\r\n      <span class=\"s\">- name: portus<\/span>\r\n        <span class=\"s\">url: http:\/\/portus:3000\/v2\/webhooks\/events<\/span>\r\n        <span class=\"s\">timeout: 500<\/span>\r\n        <span class=\"s\">threshold: 5<\/span>\r\n        <span class=\"s\">backoff: 1<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">portus:portus<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${DIR}\/certs:\/certs<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${DIR}\/data:\/var\/lib\/registry<\/span>\r\n<span class=\"na\">lb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${RPORT}:5000\/tcp<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PPORT}:443\/tcp<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.loadbalancer.target.sslproxy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${PPORT}=443<\/span>\r\n    <span class=\"s\">io.rancher.loadbalancer.target.registry<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RPORT}=5000<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:not_host_label: lb=0<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:not_host_label: registry.enabled=false<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">registry:registry<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sslproxy:sslproxy<\/span>\r\n<span class=\"na\">portus<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sshipway\/portus:2.0.5<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span> \r\n    <span class=\"na\">PORTUS_MACHINE_FQDN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAIN}<\/span>\r\n    <span class=\"na\">PORTUS_PRODUCTION_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">db<\/span>\r\n    <span class=\"na\">PORTUS_PRODUCTION_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portus<\/span>\r\n    <span class=\"na\">PORTUS_PRODUCTION_USERNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portus<\/span>\r\n    <span class=\"na\">PORTUS_PRODUCTION_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DBPASSWORD}<\/span>\r\n    <span class=\"na\">PORTUS_GRAVATAR_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">PORTUS_KEY_PATH<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/certs\/registry.key<\/span>\r\n    <span class=\"na\">PORTUS_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DBPASSWORD}<\/span>\r\n    <span class=\"na\">PORTUS_SECRET_KEY_BASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOTPASSWORD}<\/span>\r\n    <span class=\"na\">PORTUS_CHECK_SSL_USAGE_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">PORTUS_SMTP_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAP}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_HOSTNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPHOST}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPPORT}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_METHOD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPTLS}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_BASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBASE}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_UID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBINDUID}<\/span> \r\n    <span class=\"na\">PORTUS_LDAP_AUTHENTICATION_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBIND}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_AUTHENTICATION_BIND_DN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBINDDN}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_AUTHENTICATION_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBINDPASS}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_GUESS_EMAIL_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_GUESS_EMAIL_ATTR<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mail<\/span>\r\n    <span class=\"na\">PORTUS_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${PPORT}<\/span>\r\n    <span class=\"na\">REGISTRY_SSL_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">REGISTRY_HOSTNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAIN}<\/span>\r\n    <span class=\"na\">REGISTRY_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RPORT}<\/span>\r\n    <span class=\"na\">REGISTRY_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Registry<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${DIR}\/certs:\/certs<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${DIR}\/proxy:\/etc\/nginx\/conf.d<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">db:db<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft: registry.portus.db=1<\/span>\r\n    <span class=\"s\">registry.portus.app<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n<\/code><\/pre>\n<h2>\u6ce8\u518c\u62a4\u822a<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/258-0.png\" alt=\"community-registry.svg.png\" \/><\/div>\n<ul class=\"post-ul\">Registry\u3092convoy\u306evolume\u3092\u5229\u7528\u3057\u3066\u4f7f\u3046\u3053\u3068\u304c\u3067\u304d\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">db<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mysql:5.7.10<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portus<\/span>\r\n    <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOTPASSWORD}<\/span>\r\n    <span class=\"na\">MYSQL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portus<\/span>\r\n    <span class=\"na\">MYSQL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DBPASSWORD}<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DRIVER}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PFX}-db:\/var\/lib\/mysql<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">registry.portus.db<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n<span class=\"na\">sslproxy<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">nginx:1.9.9<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">portus:portus<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DRIVER}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PFX}-certs:\/etc\/nginx\/certs:ro<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PFX}-proxy:\/etc\/nginx\/conf.d:ro<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft: registry.portus.db=1<\/span>\r\n<span class=\"na\">registry<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">registry:2.3.1<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">REGISTRY_LOG_LEVEL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">warn<\/span>\r\n    <span class=\"na\">REGISTRY_STORAGE_DELETE_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH<\/span><span class=\"pi\">:<\/span> <span class=\"s\">token<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH_TOKEN_REALM<\/span><span class=\"pi\">:<\/span> <span class=\"s\">https:\/\/${DOMAIN}:${PPORT}\/v2\/token<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH_TOKEN_SERVICE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAIN}:${RPORT}<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH_TOKEN_ISSUER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAIN}<\/span>\r\n    <span class=\"na\">REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/certs\/registry.crt<\/span>\r\n    <span class=\"na\">REGISTRY_HTTP_TLS_CERTIFICATE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/certs\/registry.crt<\/span>\r\n    <span class=\"na\">REGISTRY_HTTP_TLS_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/certs\/registry.key<\/span>\r\n    <span class=\"na\">REGISTRY_HTTP_SECRET<\/span><span class=\"pi\">:<\/span> <span class=\"s\">httpsecret<\/span>\r\n    <span class=\"na\">REGISTRY_NOTIFICATIONS_ENDPOINTS<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">&gt;<\/span>\r\n      <span class=\"s\">- name: portus<\/span>\r\n        <span class=\"s\">url: http:\/\/portus:3000\/v2\/webhooks\/events<\/span>\r\n        <span class=\"s\">timeout: 500<\/span>\r\n        <span class=\"s\">threshold: 5<\/span>\r\n        <span class=\"s\">backoff: 1<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">portus:portus<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DRIVER}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PFX}-certs:\/certs<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PFX}-data:\/var\/lib\/registry<\/span>\r\n<span class=\"na\">lb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${RPORT}:5000\/tcp<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PPORT}:443\/tcp<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.loadbalancer.target.sslproxy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${PPORT}=443<\/span>\r\n    <span class=\"s\">io.rancher.loadbalancer.target.registry<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RPORT}=5000<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:not_host_label: lb=0<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:not_host_label: registry.enabled=false<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">registry:registry<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sslproxy:sslproxy<\/span>\r\n<span class=\"na\">portus<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sshipway\/portus:2.0.5<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span> \r\n    <span class=\"na\">PORTUS_MACHINE_FQDN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAIN}<\/span>\r\n    <span class=\"na\">PORTUS_PRODUCTION_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">db<\/span>\r\n    <span class=\"na\">PORTUS_PRODUCTION_DATABASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portus<\/span>\r\n    <span class=\"na\">PORTUS_PRODUCTION_USERNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">portus<\/span>\r\n    <span class=\"na\">PORTUS_PRODUCTION_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DBPASSWORD}<\/span>\r\n    <span class=\"na\">PORTUS_GRAVATAR_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">PORTUS_KEY_PATH<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/certs\/registry.key<\/span>\r\n    <span class=\"na\">PORTUS_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DBPASSWORD}<\/span>\r\n    <span class=\"na\">PORTUS_SECRET_KEY_BASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ROOTPASSWORD}<\/span>\r\n    <span class=\"na\">PORTUS_CHECK_SSL_USAGE_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">PORTUS_SMTP_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAP}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_HOSTNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPHOST}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPPORT}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_METHOD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPTLS}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_BASE<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBASE}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_UID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">cn<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_AUTHENTICATION_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBIND}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_AUTHENTICATION_BIND_DN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBINDDN}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_AUTHENTICATION_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LDAPBINDPASS}<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_GUESS_EMAIL_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">PORTUS_LDAP_GUESS_EMAIL_ATTR<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mail<\/span>\r\n    <span class=\"na\">PORTUS_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${PPORT}<\/span>\r\n    <span class=\"na\">REGISTRY_SSL_ENABLED<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">REGISTRY_HOSTNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DOMAIN}<\/span>\r\n    <span class=\"na\">REGISTRY_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${RPORT}<\/span>\r\n    <span class=\"na\">REGISTRY_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">Registry<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volume_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DRIVER}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PFX}-certs:\/certs<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${PFX}-proxy:\/etc\/nginx\/conf.d<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">db:db<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft: registry.portus.db=1<\/span>\r\n    <span class=\"s\">registry.portus.app<\/span><span class=\"pi\">:<\/span> <span class=\"m\">1<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u745e\u58eb\u745e\u58eb\u96f7\u514b\u65af<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/262-0.jpeg\" alt=\"community-rexray.jpeg\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">REX-Ray\u306f\u3001\u30d9\u30f3\u30c0\u30fc\u306b\u4f9d\u5b58\u3057\u306a\u3044\u30b9\u30c8\u30ec\u30fc\u30b8\u30aa\u30fc\u30b1\u30b9\u30c8\u30ec\u30fc\u30b7\u30e7\u30f3\u30a8\u30f3\u30b8\u30f3\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002 \u4e3b\u306a\u8a2d\u8a08\u76ee\u6a19\u306f\u3001Docker\u30b3\u30f3\u30c6\u30ca\u304a\u3088\u3073Mesos\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u30bf\u30b9\u30af\u306b\u6c38\u7d9a\u7684\u306a\u30b9\u30c8\u30ec\u30fc\u30b8\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u307e\u305f\u3001Go\u30d1\u30c3\u30b1\u30fc\u30b8\u3001CLI\u30c4\u30fc\u30eb\u3001\u304a\u3088\u3073Linux\u30b5\u30fc\u30d3\u30b9\u3068\u3057\u3066\u8ffd\u52a0\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3067\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">rexray<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wlan0\/sdc2<\/span>\r\n    <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">STACK_NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${SCALEIO_STACK_NAME}<\/span>\r\n        <span class=\"na\">SYSTEM_ID<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${SCALEIO_SYSTEM_ID}<\/span>\r\n        <span class=\"na\">MDM_IP<\/span><span class=\"pi\">:<\/span>    <span class=\"s\">${SCALEIO_MDM_IP}<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">\/proc:\/host\/proc<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n        <span class=\"s\">io.rancher.container.dns<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n        <span class=\"s\">io.rancher.scheduler.affinity:host_label: rexray.scaleio=true<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u706b\u7bad\u804a\u5929\u5ba4<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/266-0.png\" alt=\"community-rocket-chat.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">meteor\u88fd\u306e\u30c1\u30e3\u30c3\u30c8\u30a2\u30d7\u30ea\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">BYOS\u306a\u306e\u3067\u3001\u81ea\u5206\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001\u8d77\u52d5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u307e\u308b\u3067Slack\u306e\u3088\u3046\u306a\u3001\u3068\u3044\u3046\u304b\u307b\u3068\u3093\u3069Slack\u306aUI\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Slack\u306e\u3088\u3046\u306aBYOS\u3067OSS\u306a\u30c1\u30e3\u30c3\u30c8 Rocket.Chat \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b<\/ul>\n<h2>Route53 DNS &#8211; Route53 \u57df\u540d\u89e3\u6790<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/269-0.png\" alt=\"library-route53.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">aws \u306bRoute53\u3068\u3044\u3044\u611f\u3058\u306b\u9023\u643a\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">AWS Route53\u30c9\u30e1\u30a4\u30f3\u53d6\u5f97\u304b\u3089Certificate Manager\u3067\u306e\u8a3c\u660e\u66f8\u4f5c\u6210\u307e\u3067<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">mongo<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mongo<\/span>\r\n<span class=\"c1\"># volumes:<\/span>\r\n<span class=\"c1\">#    - .\/data\/runtime\/db:\/data\/db<\/span>\r\n<span class=\"c1\">#    - .\/data\/dump:\/dump<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mongod --smallfiles --oplogSize <\/span><span class=\"m\">128<\/span>\r\n\r\n<span class=\"na\">rocketchat<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rocketchat\/rocket.chat:latest<\/span>\r\n<span class=\"c1\"># volumes:<\/span>\r\n<span class=\"c1\">#    - .\/uploads:\/app\/uploads<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">PORT=3000<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ROOT_URL=http:\/\/yourhost:3000<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">MONGO_URL=mongodb:\/\/mongo:27017\/rocketchat<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">mongo:mongo<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">3000:3000<\/span>\r\n\r\n<span class=\"c1\"># hubot, the popular chatbot (add the bot user first and change the password before starting this image)<\/span>\r\n<span class=\"na\">hubot<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rocketchat\/hubot-rocketchat<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ROCKETCHAT_URL=rocketchat:3000<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ROCKETCHAT_ROOM=GENERAL<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ROCKETCHAT_USER=bot<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ROCKETCHAT_PASSWORD=botpassword<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">BOT_NAME=bot<\/span>\r\n<span class=\"c1\"># you can add more scripts as you'd like here, they need to be installable by npm<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">rocketchat:rocketchat<\/span>\r\n<span class=\"c1\"># this is used to expose the hubot port for notifications on the host on port 3001, e.g. for hubot-jenkins-notifier<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">3001:8080<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u5f39\u6027IO\u7f51\u7edc\u9644\u52a0\u5b58\u50a8\uff08NAS\/DAS\uff09<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/273-0.jpeg\" alt=\"community-scaleio.jpeg\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5206\u6563\u30b9\u30c8\u30ec\u30fc\u30b8\u30b7\u30b9\u30c6\u30e0\u30fbSDS(Software Defined Storage)<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5206\u6563\u30b9\u30c8\u30ec\u30fc\u30b8\u3068\u3057\u3066Sheepdog, DRBD, VSAN, ScaleIO\u306a\u3069\u304c\u3042\u308a\u307e\u3059\u3002\u6700\u8fd1\u3067\u306fSDS(Software Defined Storage)\u3068\u30ab\u30c6\u30b4\u30e9\u30a4\u30ba\u3055\u308c\u308b\u3053\u3068\u3082\u591a\u3044\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u660e\u65e5\u304b\u3089\u8a66\u305b\u308b\uff01\u30bd\u30d5\u30c8\u30a6\u30a8\u30a2\u30d9\u30fc\u30b9\u30b9\u30c8\u30ec\u30fc\u30b8\u300cScaleIO\u300d\u306e\u3054\u7d39\u4ecb<\/ul>\n<pre class=\"post-pre\"><code>\r\n<span class=\"na\">tb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/sys\/fs\/cgroup:\/sys\/fs\/cgroup:ro<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wlan0\/tb<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n      <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n\r\n<span class=\"na\">sds<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/sys\/fs\/cgroup:\/sys\/fs\/cgroup:ro<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wlan0\/sds<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n      <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n      <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n\r\n<span class=\"na\">mdm<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/sys\/fs\/cgroup:\/sys\/fs\/cgroup:ro<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/dev\/shm:\/dev\/shm<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wlan0\/mdm<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n      <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/primary_mdm<\/span>\r\n      <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n\r\n<span class=\"na\">primary-mdm<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/sys\/fs\/cgroup:\/sys\/fs\/cgroup:ro<\/span>\r\n   <span class=\"pi\">-<\/span> <span class=\"s\">\/dev\/shm:\/dev\/shm<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wlan0\/mdm<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/usr\/sbin\/init<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/run_mdm_and_configure.sh<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n      <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/mdm<\/span>\r\n      <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u79d8\u5bc6\u4e4b\u6865<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/277-0.png\" alt=\"community-secrets-bridge-server.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Secrets Bridge\u30b5\u30fc\u30d3\u30b9\u306f\u3001\u8d77\u52d5\u6642\u306eDocker\u30b3\u30f3\u30c6\u30ca\u304cVault\u5185\u306e\u79d8\u5bc6\u3068\u5b89\u5168\u306b\u63a5\u7d9a\u3055\u308c\u308b\u3088\u3046\u306b\u3001Rancher\u3068Vault\u3092\u7d71\u5408\u3059\u308b\u6a19\u6e96\u5316\u3055\u308c\u305f\u65b9\u6cd5\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30d6\u30ea\u30c3\u30b8\u30b5\u30fc\u30d3\u30b9\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u3068\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">secrets-bridge<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/secrets-bridge:v0.2.0<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">CATTLE_ACCESS_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CATTLE_ACCESS_KEY}<\/span>\r\n        <span class=\"na\">CATTLE_SECRET_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CATTLE_SECRET_KEY}<\/span>\r\n        <span class=\"na\">CATTLE_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${CATTLE_URL}<\/span>\r\n        <span class=\"na\">VAULT_TOKEN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VAULT_TOKEN}<\/span>\r\n        <span class=\"na\">VAULT_CUBBYPATH<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${VAULT_CUBBYPATH}<\/span>\r\n    <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> \r\n        <span class=\"pi\">-<\/span> <span class=\"s\">server<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">--vault-url<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${VAULT_URL}<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">--rancher-url<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">$CATTLE_URL<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">--rancher-secret<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${CATTLE_SECRET_KEY}<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">--rancher-access<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${CATTLE_ACCESS_KEY}<\/span>\r\n<span class=\"na\">secrets-bridge-lb<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${LBPORT}:8181\"<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/load-balancer-service<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">secrets-bridge:secrets-bridge<\/span>\r\n<\/code><\/pre>\n<h2>\u79d8\u5bc6\u6865\u6881\u7279\u5de5<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/281-0.png\" alt=\"community-secrets-bridge-server.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Secrets Bridge\u30b5\u30fc\u30d3\u30b9\u306f\u3001\u8d77\u52d5\u6642\u306eDocker\u30b3\u30f3\u30c6\u30ca\u304cVault\u5185\u306e\u79d8\u5bc6\u3068\u5b89\u5168\u306b\u63a5\u7d9a\u3055\u308c\u308b\u3088\u3046\u306b\u3001Rancher\u3068Vault\u3092\u7d71\u5408\u3059\u308b\u6a19\u6e96\u5316\u3055\u308c\u305f\u65b9\u6cd5\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30d6\u30ea\u30c3\u30b8\u30b5\u30fc\u30d3\u30b9\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u3068\u30a8\u30fc\u30b8\u30a7\u30f3\u30c8\u3067\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">secrets-bridge<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rancher\/secrets-bridge:v0.2.0<\/span>\r\n    <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">agent --bridge-url ${BRIDGE_URL}<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n    <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.container.create_agent<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n        <span class=\"s\">io.rancher.container.agent.role<\/span><span class=\"pi\">:<\/span> <span class=\"s\">agent<\/span>\r\n        <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<\/code><\/pre>\n<h2>Sematext Docker \u4ee3\u7406<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/285-0.png\" alt=\"community-sematext.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">https:\/\/github.com\/sematext\/sematext-agent-docker<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Docker\u7528Sematext Agent\u306f\u3001SPM Docker Monitoring\uff06Logsene \/ Hosted ELK Log Management\u7528\u306eDocker API\u304b\u3089\u30e1\u30c8\u30ea\u30c3\u30af\u3001\u30a4\u30d9\u30f3\u30c8\u3001\u30ed\u30b0\u3092\u53ce\u96c6\u3057\u307e\u3059\u3002 CoreOS\u3001RancherOS\u3001Docker Swarm\u3001Kubernetes\u3001Apache Mesos\u3001Hashicorp Nomad\u3001Amzon ECS\u3001&#8230;\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">sematext-agent<\/span><span class=\"pi\">:<\/span>  \r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">sematext\/sematext-agent-docker:${image_version}'<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">LOGSENE_TOKEN=${logsene_token}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SPM_TOKEN=${spm_token}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">GEOIP_ENABLED=${geoip_enabled}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">HTTPS_PROXY=${https_proxy}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">HTTP_PROXY=${http_proxy}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">MATCH_BY_IMAGE=${match_by_image}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">MATCH_BY_NAME=${match_by_name}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SKIP_BY_IMAGE=${match_by_image}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">SKIP_BY_NAME=${match_by_name}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">LOGAGENT_PATTERNS=${logagent_patterns}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">KUBERNETES=${kubernetes}<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n\r\n<span class=\"s\">Launch<\/span>\r\n<\/code><\/pre>\n<h2>\u54e8\u5175<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/289-0.png\" alt=\"community-sentry.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u69d8\u3005\u306a\u8a00\u8a9e\u304b\u3089\u9001\u4fe1\u3055\u308c\u305f\u30a4\u30d9\u30f3\u30c8\u30ed\u30b0\u3092\u8868\u793a\u3057\u3066\u304f\u308c\u308b\u3084\u3064<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Sentry\u3067js\u306e\u30a8\u30e9\u30fc\u30ed\u30b0\u3092\u53ce\u96c6\u3057\u3066\u307f\u305f<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u30a4\u30d9\u30f3\u30c8\u30ed\u30b0\u53ce\u96c6\u30c4\u30fc\u30eb\u306e Sentry \u304c\u51c4\u305d\u3046<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">sentry-postgres<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">POSTGRES_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sentry<\/span>\r\n    <span class=\"na\">POSTGRES_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">secret<\/span>\r\n    <span class=\"na\">PGDATA<\/span><span class=\"pi\">:<\/span> <span class=\"s\">\/data\/postgres\/data<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres:9.5.3<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">sentry-cron<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_host}<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_password}<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${sentry_email_port}'<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_user}<\/span>\r\n    <span class=\"na\">SENTRY_SECRET_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_secret_key}<\/span>\r\n    <span class=\"na\">SENTRY_SERVER_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_server_email}<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">run<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">cron<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sentry:8.5.0<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sentry-postgres:postgres<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sentry-redis:redis<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">sentry-redis<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis:3.2.0-alpine<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">sentry<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${sentry_public_port}:9000\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_host}<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_password}<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${sentry_email_port}'<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_user}<\/span>\r\n    <span class=\"na\">SENTRY_SECRET_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_secret_key}<\/span>\r\n    <span class=\"na\">SENTRY_SERVER_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_server_email}<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/bin\/bash<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">-c<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sentry upgrade --noinput &amp;&amp; sentry createuser --email ${sentry_inital_user_email} --password ${sentry_inital_user_password} --superuser &amp;&amp; \/entrypoint.sh run web || \/entrypoint.sh run web<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sentry:8.5.0<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sentry-postgres:postgres<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sentry-redis:redis<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<span class=\"na\">sentry-worker<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_HOST<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_host}<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_password}<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_PORT<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">${sentry_email_port}'<\/span>\r\n    <span class=\"na\">SENTRY_EMAIL_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_email_user}<\/span>\r\n    <span class=\"na\">SENTRY_SECRET_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_secret_key}<\/span>\r\n    <span class=\"na\">SENTRY_SERVER_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${sentry_server_email}<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.container.pull_image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">run<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">worker<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sentry:8.5.0<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sentry-postgres:postgres<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">sentry-redis:redis<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n<\/code><\/pre>\n<h2>\u58f0\u7eb3\u9b54\u65b9<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/293-0.png\" alt=\"community-sonarqube.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30b9\u30a4\u30b9\u306eSonarSource\u793e\u304c\u4e3b\u306b\u958b\u767a\u3092\u884c\u3063\u3066\u3044\u308b\u7d71\u5408\u7684\u306a\u30d7\u30ed\u30b0\u30e9\u30e0\u54c1\u8cea\u7ba1\u7406\u3092\u884c\u3048\u308b\u7d71\u5408\u54c1\u8cea\u7ba1\u7406\u30c4\u30fc\u30eb<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">SonarQube\u3067\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u54c1\u8cea\u7ba1\u7406\u3092\u306f\u3058\u3081\u308b\uff08\u6982\u8981\uff09<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">SonarQube\u3067\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306e\u54c1\u8cea\u30c1\u30a7\u30c3\u30af<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">sonarqube-data<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n    <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/sonarqube\/extensions\/plugins<\/span>\r\n\r\n<span class=\"na\">sonarqube<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sonarqube<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:9000<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">postgres<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">http_proxy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${http_proxy}<\/span>\r\n        <span class=\"na\">https_proxy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${https_proxy}<\/span>\r\n        <span class=\"na\">SONARQUBE_JDBC_USERNAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_user}<\/span>\r\n        <span class=\"na\">SONARQUBE_JDBC_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_password}<\/span>\r\n        <span class=\"na\">SONARQUBE_JDBC_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">jdbc:postgresql:\/\/postgres\/sonar<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sonarqube-data<\/span>\r\n    <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">sonarqube-data<\/span>        \r\n\r\n<span class=\"na\">postgres-data<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n    <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n      <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${postgres_data}<\/span>\r\n\r\n<span class=\"na\">postgres<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres:latest<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${postgress_port}:5432<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">PGDATA<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_data}<\/span>\r\n        <span class=\"na\">POSTGRES_DB<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_db}<\/span>\r\n        <span class=\"na\">POSTGRES_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_user}<\/span>\r\n        <span class=\"na\">POSTGRES_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_password}<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres-data<\/span>\r\n    <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">postgres-data<\/span>\r\n\r\n\r\n<\/code><\/pre>\n<h2>Sysdig \u7cfb\u7edf\u8c03\u8bd5<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/297-0.png\" alt=\"community-sysdig.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">strace + tcpdump + lsof + htop + iftop + Lua = sysdig \u3063\u3066\u611f\u3058\u3067\u3059\u3002curses \u306b\u3088\u308b\u30b0\u30e9\u30d5\u30a3\u30ab\u30eb\u306aUI\u51fa\u529b\u306a\u3069\u3082\u53ef\u80fd\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Logging drivers\u3092\u8a66\u3057\u3066\u307f\u305f<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">sysdig<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sysdig<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sysdig\/sysdig:${VERSION}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/host\/var\/run\/docker.sock<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/dev:\/host\/dev<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/proc:\/host\/proc:ro<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/boot:\/host\/boot:ro<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/lib\/modules:\/host\/lib\/modules:ro<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr:\/host\/usr:ro<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n     <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n     <span class=\"s\">io.rancher.scheduler.affinity:host_label_ne: ${HOST_EXCLUDE_LABEL}<\/span>\r\n<\/code><\/pre>\n<h2>Sysdig\u4e91<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/301-0.png\" alt=\"community-sysdig-cloud.svg.png\" \/><\/div>\n<ul class=\"post-ul\">Sysdig \u306e\u30af\u30e9\u30a6\u30c9\u30b5\u30fc\u30d3\u30b9\u7248<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">sysdig-agent<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sysdig-agent<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sysdig\/agent:${VERSION}<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">host\"<\/span>\r\n  <span class=\"na\">pid<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">host\"<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">ACCESS_KEY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${SDC_ACCESS_KEY}<\/span>\r\n    <span class=\"na\">TAGS<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${SDC_TAGS}\"<\/span>\r\n    <span class=\"na\">ADDITIONAL_CONF<\/span><span class=\"pi\">:<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">${SDC_ADDITIONAL_CONF}\"<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">max-size<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LOG_SIZE}<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/run\/docker.sock:\/host\/var\/run\/docker.sock<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/dev:\/host\/dev<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/proc:\/host\/proc:ro<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/boot:\/host\/boot:ro<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/lib\/modules:\/host\/lib\/modules:ro<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/usr:\/host\/usr:ro<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n     <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n     <span class=\"s\">io.rancher.scheduler.affinity:host_label_ne: ${HOST_EXCLUDE_LABEL}<\/span>\r\n<\/code><\/pre>\n<h2>\u5927\u8349\u539f<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/305-0.png\" alt=\"community-taiga.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3084\u305f\u3089\u30c7\u30b6\u30a4\u30f3\u304c\u304d\u308c\u3044\u306a\u30a2\u30b8\u30e3\u30a4\u30eb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406\u30c4\u30fc\u30eb\u3002Trello\u30af\u30ed\u30fc\u30f3\u3068\u3044\u3046\u611f\u3058\u306f\u306a\u304f\u3001Redmine\u62e1\u5f35\u306eAlminium\u306b\u4f3c\u3066\u3044\u308b\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">TAIGA on Docker\u3067\u672c\u683c\u30a2\u30b8\u30e3\u30a4\u30eb\u958b\u767a\u7ba1\u7406<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">postgres<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">POSTGRES_DB=taiga<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">POSTGRES_USER=taiga<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">POSTGRES_PASSWORD=password<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${DATABASE}:\/var\/lib\/postgresql\/data<\/span>\r\n\r\n<span class=\"na\">rabbit<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rabbitmq:3<\/span>\r\n  <span class=\"na\">hostname<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rabbit<\/span>\r\n\r\n<span class=\"na\">redis<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">redis:3<\/span>\r\n\r\n<span class=\"na\">celery<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">celery<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">rabbit<\/span>\r\n\r\n<span class=\"na\">events<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kartoffeltoby\/taiga-events:latest<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">rabbit<\/span>\r\n\r\n<span class=\"na\">taiga<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kartoffeltoby\/taiga:latest<\/span>\r\n  <span class=\"na\">restart<\/span><span class=\"pi\">:<\/span> <span class=\"s\">always<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">postgres<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">events<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">rabbit<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">redis<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">TAIGA_HOSTNAME=${DOMAIN}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">TAIGA_DB_HOST=postgres<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">TAIGA_DB_NAME=taiga<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">TAIGA_DB_USER=taiga<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">TAIGA_DB_PASSWORD=password<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">HTTPS_SELF_DOMAIN=${DOMAIN}<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">TAIGA_SSL=True<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">TAIGA_SLEEP=10<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${DATA}:\/usr\/src\/taiga-back\/media<\/span>\r\n<\/code><\/pre>\n<h2>\u56e2\u961f\u57ce\u5e02<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/309-0.png\" alt=\"community-teamcity.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u5206\u6563\u578b\u7d99\u7d9a\u7684\u7d71\u5408\u30b5\u30fc\u30d0\u30fc<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">TeamCity\u306f\u3001\u72ec\u5275\u7684\u306a\u7d99\u7d9a\u30e6\u30cb\u30c3\u30c8\u30c6\u30b9\u30c8\u3001\u30b3\u30fc\u30c9\u54c1\u8cea\u5206\u6790\u3001\u30d3\u30eb\u30c9\u554f\u984c\u306e\u65e9\u671f\u5831\u544a\u30c4\u30fc\u30eb\u3067\u3059\u3002\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306f\u975e\u5e38\u306b\u7c21\u5358\u3067\u307b\u3093\u306e\u6570\u5206\u3067\u7d42\u308f\u308a\u307e\u3059\u306e\u3067\u3042\u3063\u3068\u3044\u3046\u9593\u306b\u30b3\u30fc\u30c9\u3084\u30ea\u30ea\u30fc\u30b9\u7ba1\u7406\u306e\u54c1\u8cea\u5411\u4e0a\u3092\u4f53\u611f\u3067\u304d\u308b\u3053\u3068\u3067\u3057\u3087\u3046\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">TeamCity\u306fJava\u3001.NET\u3001Ruby\u958b\u767a\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3001\u4e3b\u8981\u306aIDE\u3001\u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406\u30b7\u30b9\u30c6\u30e0\u3001\u30d0\u30b0\u30c8\u30e9\u30c3\u30ad\u30f3\u30b0\u30b7\u30b9\u30c6\u30e0\u3068\u5b8c\u5168\u306b\u9023\u643a\u3067\u304d\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">node \u00d7 TeamCity \u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3 \u301cTeamCity\u4e0a\u3067node, npm \u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u301c<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">mocha \u00d7 TeamCity \u30a4\u30f3\u30c6\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3 \u301c\u30c6\u30b9\u30c8\u7d50\u679c\u3001\u30ab\u30d0\u30ec\u30c3\u30b8\u3092TeamCity \u306b\u8868\u793a\u3059\u308b\u301c<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">teamcity-data<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/teamcity<\/span>\r\n\r\n<span class=\"na\">teamcity-server<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sjoerdmulder\/teamcity:latest<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:8111<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">postgres:${postgress_container}<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">http_proxy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${http_proxy}<\/span>\r\n        <span class=\"na\">https_proxy<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${https_proxy}<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">teamcity-data<\/span>\r\n    <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">teamcity-data<\/span>        \r\n\r\n<span class=\"na\">postgres-data<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${postgres_data}<\/span>\r\n\r\n<span class=\"na\">postgres<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres:latest<\/span>\r\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">${postgress_port}:5432<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">PGDATA<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_data}<\/span>\r\n        <span class=\"na\">POSTGRES_DB<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_db}<\/span>\r\n        <span class=\"na\">POSTGRES_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_user}<\/span>\r\n        <span class=\"na\">POSTGRES_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${postgres_password}<\/span>\r\n    <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres-data<\/span>\r\n    <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">postgres-data<\/span>\r\n\r\n<span class=\"na\">teamcity-agent<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sjoerdmulder\/teamcity-agent:latest<\/span>\r\n    <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"pi\">-<\/span> <span class=\"s\">teamcity-server:teamcity-server<\/span>\r\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n        <span class=\"na\">TEAMCITY_SERVER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">http:\/\/teamcity-server:8111<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Traefik\uff08\u8f49\u63db\u70ba\u4e2d\u6587\uff09<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/313-0.png\" alt=\"community-traefik.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Traefik\u3068\u306f\u69d8\u3005\u306a\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\uff08docker\u3001swarm\u3001kubernetes\u3001mesos\u3001consul\u3001zookeeper\u306a\u3069\uff09\u306e\u72b6\u614b\u3092\u5143\u306b\u8a2d\u5b9a\u3092\u52d5\u7684\u306b\u5909\u66f4\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3001\u30ed\u30fc\u30c9\u30d0\u30e9\u30f3\u30b5\u517c\u30ea\u30d0\u30fc\u30b9\u30d7\u30ed\u30ad\u30b7\u3067\u3059\u3002Go\u3067\u66f8\u304b\u308c\u3066\u304a\u308a\u3001\u4ed6\u306eGo\u88fd\u30c4\u30fc\u30eb\u3068\u540c\u3058\u304f\u3001\u30d0\u30a4\u30ca\u30ea\u3092\u3072\u3068\u3064\u7f6e\u304f\u3060\u3051\u3067\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u3001\u7dba\u9e97\u306aGUI\u3082\u5099\u3048\u3066\u3044\u307e\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">CoreOS\u74b0\u5883\u3067traefik\u3092\u4f7f\u3063\u3066\u30b3\u30f3\u30c6\u30ca\u306e\u30b5\u30fc\u30d3\u30b9\u30c7\u30a3\u30b9\u30ab\u30d0\u30ea\u3092\u884c\u3046\u65b9\u6cd5<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Traefik \u3068 consul \u3092\u4f7f\u3063\u3066 web \u30b5\u30fc\u30d3\u30b9\u3092\u304a\u6c17\u8efd\u306b\u3076\u3089\u4e0b\u3052\u308b<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">traefik<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${admin_port}:8000\/tcp<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${http_port}:${http_port}\/tcp<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">${https_port}:${https_port}\/tcp<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label: ${host_label}<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">traefik-conf<\/span>\r\n    <span class=\"s\">io.rancher.container.hostname_override<\/span><span class=\"pi\">:<\/span> <span class=\"s\">container_name<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/alpine-traefik:1.1.2-1<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">CONF_INTERVAL=${refresh_interval}<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">TRAEFIK_HTTP_PORT=${http_port}<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">TRAEFIK_HTTPS_PORT=${https_port}<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">TRAEFIK_HTTPS_ENABLE=${https_enable}<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">TRAEFIK_ACME_ENABLE=${acme_enable}<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">TRAEFIK_ACME_EMAIL=${acme_email}<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">TRAEFIK_ACME_ONDEMAND=${acme_ondemand}<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">TRAEFIK_ACME_ONHOSTRULE=${acme_onhostrule}<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">traefik-conf<\/span>\r\n<span class=\"na\">traefik-conf<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:host_label: ${host_label}<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_ne: io.rancher.stack_service.name=$${stack_name}\/$${service_name}<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">rawmind\/rancher-traefik:0.3.4-18<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">none<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/tools<\/span>\r\n\r\n\r\n<\/code><\/pre>\n<h2>\u9f9c<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/317-0.png\" alt=\"community-turtl.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u30ce\u30fc\u30c8\u3001\u7814\u7a76\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3001\u30d6\u30c3\u30af\u30de\u30fc\u30af\u3001\u5922\u306e\u30ed\u30b0\u3001\u5199\u771f\u3001\u66f8\u985e\u305d\u306e\u4ed6\u306e\u5b89\u5168\u3092\u5b88\u308b\u305f\u3081\u306e\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u306a\u5834\u6240\u3067\u3059\u3002 Turtl\u306e\u7c21\u5358\u306a\u30bf\u30b0\u4ed8\u3051\u3068\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u306f\u3001\u500b\u4eba\u7684\u306a\u30d7\u30ed\u30d5\u30a7\u30c3\u30b7\u30e7\u30ca\u30eb\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u305f\u3081\u306b\u7d44\u7e54\u5316\u3084\u7814\u7a76\u306b\u7406\u60f3\u7684\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u6700\u9ad8\u306e\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc\u306eTurtl\u3092Evernote\u3060\u3068\u8003\u3048\u3066\u304f\u3060\u3055\u3044\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">https:\/\/turtlapp.com\/<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">turtl-api-data<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n  <span class=\"na\">entrypoint<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">\/bin\/true<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">busybox<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/opt\/api\/uploads<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">\/var\/lib\/rethinkdb\/instance1<\/span>\r\n\r\n<span class=\"na\">turtl-api<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">8181:8181\/tcp<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">DISPLAY_ERRORS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DISPLAY_ERRORS}<\/span>\r\n    <span class=\"na\">FQDN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${FQDN}<\/span>\r\n    <span class=\"na\">SITE_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${SITE_URL}<\/span>\r\n    <span class=\"na\">LOCAL_UPLOAD_URL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LOCAL_UPLOAD_URL}<\/span>\r\n    <span class=\"na\">LOCAL_UPLOAD_PATH<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${LOCAL_UPLOAD_PATH}<\/span>\r\n    <span class=\"na\">AWS_S3_TOKEN<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${AWS_S3_TOKEN}<\/span>\r\n    <span class=\"na\">ADMIN_EMAIL<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${ADMIN_EMAIL}<\/span>\r\n    <span class=\"na\">EMAIL_FROM<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${EMAIL_FROM}<\/span>\r\n    <span class=\"na\">SMTP_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${SMTP_USER}<\/span>\r\n    <span class=\"na\">SMTP_PASS<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${SMTP_PASS}<\/span>\r\n    <span class=\"na\">DEFAULT_STORAGE_LIMIT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DEFAULT_STORAGE_LIMIT}<\/span>\r\n    <span class=\"na\">STORAGE_INVITE_CREDIT<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${STORAGE_INVITE_CREDIT}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">webofmars\/turtl-docker:latest<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.sidekicks<\/span><span class=\"pi\">:<\/span> <span class=\"s\">turtl-api-data<\/span>\r\n  <span class=\"na\">volumes_from<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">turtl-api-data<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u7f16\u7ec7\u8303\u56f4<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/321-0.png\" alt=\"community-weavescope.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Weave Scope \u306f\u30d6\u30e9\u30a6\u30b6\u3092\u901a\u3057\u3066\u3001\u30db\u30b9\u30c8\u4e0a\u3067\u3069\u306e\u3088\u3046\u306a\u30b3\u30f3\u30c6\u30ca\u3084\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\uff08\u30d7\u30ed\u30bb\u30b9\uff09\u304c\u7a3c\u50cd\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u898b\u308b\u3053\u3068\u304c\u3067\u304d\u3001\u305d\u306e\u95a2\u9023\u6027\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u30de\u30c3\u30d4\u30f3\u30b0\uff08\u5730\u56f3\u5316\uff09\u3059\u308b\u305f\u3081\u306e\u3082\u306e\u3067\u3059\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Weave Scope\u3067\u30b3\u30f3\u30c6\u30ca\u69cb\u6210\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u8996\u899a\u5316<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">weavescope-probe<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">weaveworks\/scope:1.0.0<\/span>\r\n  <span class=\"na\">privileged<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">net<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n  <span class=\"na\">pid<\/span><span class=\"pi\">:<\/span> <span class=\"s\">host<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.global<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n    <span class=\"s\">io.rancher.container.dns<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">weavescope-app<\/span>\r\n  <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">\/var\/run\/docker.sock:\/var\/run\/docker.sock\"<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">true<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">--probe.docker\"<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">true\"<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">--no-app\"<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">weavescope-app\"<\/span>\r\n<span class=\"na\">weavescope-app<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">weaveworks\/scope:1.0.0<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">4040:4040\"<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">--no-probe\"<\/span>\r\n\r\n<\/code><\/pre>\n<h2>Wekan\u53ef\u4ee5<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/325-0.png\" alt=\"community-wekan.svg.png\" \/><\/div>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u304b\u3093\u3070\u3093\u5f0f\u7ba1\u7406\u30c4\u30fc\u30ebWekan\u306fTrello\u30af\u30ed\u30fc\u30f3\u306e\u4e00\u3064\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Docker\u3067Wekan\u3092\u4f7f\u3046<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">wekandb<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mongo<\/span>\r\n<span class=\"c1\">#  volumes:<\/span>\r\n<span class=\"c1\">#    - .\/data\/runtime\/db:\/data\/db<\/span>\r\n<span class=\"c1\">#    - .\/data\/dump:\/dump<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mongod --smallfiles --oplogSize <\/span><span class=\"m\">128<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"m\">27017<\/span>\r\n\r\n<span class=\"na\">wekan<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mquandalle\/wekan<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">wekandb<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">MONGO_URL=mongodb:\/\/wekandb\/wekan<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">ROOT_URL=http:\/\/localhost:80<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">80:80<\/span>\r\n<\/code><\/pre>\n<h2>WordPress \u662f\u4e00\u79cd\u5f00\u6e90\u7684\u5185\u5bb9\u7ba1\u7406\u7cfb\u7edf (CMS)\uff0c\u88ab\u5e7f\u6cdb\u7528\u4e8e\u5efa\u7acb\u548c\u7ba1\u7406\u7f51\u7ad9\u3002<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/329-0.png\" alt=\"community-wordpress.png\" \/><\/div>\n<ul class=\"post-ul\">\u5b9a\u756a\u306e\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e\u30d6\u30ed\u30b0\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">wordpress<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">wordpress<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">db:mysql<\/span>\r\n  <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"pi\">-<\/span> <span class=\"s\">${public_port}:80<\/span>\r\n\r\n<span class=\"na\">db<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">mariadb<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">MYSQL_ROOT_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">example<\/span>\r\n\r\n<\/code><\/pre>\n<h2>XPilots \u8d5b\u8f66\u98de\u884c\u5458<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/333-0.png\" alt=\"community-xpilot.1.png\" \/><\/div>\n<ul class=\"post-ul\">\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u578b\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0\u30b2\u30fc\u30e0\u300cXPilot\u300d<\/ul>\n<pre class=\"post-pre\"><code><span class=\"na\">server<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${PASSWORD}<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">-server<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sshipway\/xpilot:latest<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">xpilot<\/span><span class=\"pi\">:<\/span> <span class=\"s\">server<\/span>\r\n<span class=\"na\">client<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">DISPLAY<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${DISPLAY}<\/span>\r\n    <span class=\"na\">NAME<\/span><span class=\"pi\">:<\/span> <span class=\"s\">${NAME}<\/span>\r\n    <span class=\"na\">SERVER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">xpilot<\/span>\r\n  <span class=\"na\">log_driver<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">'<\/span>\r\n  <span class=\"na\">command<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">xpilot<\/span>\r\n  <span class=\"na\">log_opt<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">{}<\/span>\r\n  <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">sshipway\/xpilot:latest<\/span>\r\n  <span class=\"na\">links<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"pi\">-<\/span> <span class=\"s\">server:xpilot<\/span>\r\n  <span class=\"na\">tty<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span>\r\n  <span class=\"na\">stdin_open<\/span><span class=\"pi\">:<\/span> <span class=\"no\">false<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">io.rancher.scheduler.affinity:container_label_soft: xpilot=server<\/span>\r\n    <span class=\"s\">io.rancher.container.start_once<\/span><span class=\"pi\">:<\/span> <span class=\"s1\">'<\/span><span class=\"s\">true'<\/span>\r\n\r\n<\/code><\/pre>\n<h2>\u603b\u7ed3<\/h2>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u3051\u3063\u3053\u3046\u9577\u3044\u8a18\u4e8b\u306b\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u4fee\u6b63\u70b9\u3084\u8ffd\u52a0\u3057\u3066\u307b\u3057\u3044\u30b5\u30f3\u30d7\u30eb\u304c\u3042\u308c\u3070\u304a\u3057\u3089\u305b\u304f\u3060\u3055\u3044\u307e\u3057\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u6b21\u306fk8s\u3082\u5168\u3066\u6652\u3057\u3066\u307f\u3088\u3046\u3068\u601d\u3046<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u7ecf\u7eac \u4eca\u6d41\u884c\u308a\u306eRancher\u3092\u4f7f\u3063\u3066docker\u30b3\u30f3\u30c6\u30ca\u3092\u7ba1\u7406\u3057\u3066\u3044\u307e\u3059 &nbsp; Rancher\u306b\u306f\u300c [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-47213","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u3010docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose-yml\u7684\u793a\u4f8b\u603b\u7ed3\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3\" \/>\n<meta property=\"og:description\" content=\"\u7ecf\u7eac \u4eca\u6d41\u884c\u308a\u306eRancher\u3092\u4f7f\u3063\u3066docker\u30b3\u30f3\u30c6\u30ca\u3092\u7ba1\u7406\u3057\u3066\u3044\u307e\u3059 &nbsp; Rancher\u306b\u306f\u300c [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u3010docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose-yml\u7684\u793a\u4f8b\u603b\u7ed3\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-11T06:46:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-04T03:46:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/8-0.png\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"50 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/\",\"name\":\"\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-08-11T06:46:21+00:00\",\"dateModified\":\"2024-05-04T03:46:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u3010docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose-yml\u7684\u793a\u4f8b\u603b\u7ed3\/","og_locale":"zh_CN","og_type":"article","og_title":"\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3","og_description":"\u7ecf\u7eac \u4eca\u6d41\u884c\u308a\u306eRancher\u3092\u4f7f\u3063\u3066docker\u30b3\u30f3\u30c6\u30ca\u3092\u7ba1\u7406\u3057\u3066\u3044\u307e\u3059 &nbsp; Rancher\u306b\u306f\u300c [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u3010docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose-yml\u7684\u793a\u4f8b\u603b\u7ed3\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-08-11T06:46:21+00:00","article_modified_time":"2024-05-04T03:46:00+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d7d65913a08637a69f9f7\/8-0.png"}],"author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"50 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/","name":"\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-08-11T06:46:21+00:00","dateModified":"2024-05-04T03:46:00+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u3010Docker\u3011\u8fd9\u662f\u6709\u7528\u7684\uff01docker-compose.yml\u7684\u793a\u4f8b\u603b\u7ed3"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90docker%e3%80%91%e8%bf%99%e6%98%af%e6%9c%89%e7%94%a8%e7%9a%84%ef%bc%81docker-compose-yml%e7%9a%84%e7%a4%ba%e4%be%8b%e6%80%bb%e7%bb%93\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/47213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=47213"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/47213\/revisions"}],"predecessor-version":[{"id":98129,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/47213\/revisions\/98129"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=47213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=47213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=47213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}