小编Dav*_*Sag的帖子

如何在Docker容器中永久使用

我想在Docker容器中将我的简单Node服务器作为后台进程运行,但是当我尝试使用它启动它时,forever我得到以下信息:

fs.js:432
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^
Error: ENOENT, no such file or directory '/.forever/9Spa.log'
Run Code Online (Sandbox Code Playgroud)

因此,我尝试仅.forever在当前工作目录中创建一个名为的文件夹,但随后出现了几乎相同的错误(*.log每次运行该文件时,其名称都与预期的不同)。

如果我不使用服务器forever就运行它,则不会出现任何错误。例如:

node server
Run Code Online (Sandbox Code Playgroud)

要么

npm start
Run Code Online (Sandbox Code Playgroud)

两者都可以正常工作,但是当然不能在后台运行。

我在运行时遇到相同的错误

forever list
Run Code Online (Sandbox Code Playgroud)

因此,请明确发出此问题,forever而不是我的服务器代码。

npm list -g显示forever已安装。

Ubuntu 14.04.1 LTS在Docker容器中使用映像。

我愿意提出建议。

更新

我终于forever要运行在该.forever文件夹中/home/testuser及其内部的pids文件夹,然后运行以下命令:

forever start -p /home/testuser/.forever --pidFile /home/testuser/.forever/pids/server.pid server.js
Run Code Online (Sandbox Code Playgroud)

根据文档

-p PATH 所有永久相关文件(PID文件等)的基本路径

但是,事实并非如此。我被迫为--pidFile

因此,万岁,我的服务器正在作为后台进程运行。但是以下内容仍然中断:

forever stop server.js
Run Code Online (Sandbox Code Playgroud)

=> /usr/local/lib/node_modules/forever/lib/forever.js:634 var …

node.js forever docker

5
推荐指数
1
解决办法
3230
查看次数

Gitlab-ci 没有使用我指定的节点版本

我对 GitLab 非常陌生,正在尝试为我的项目设置 CI/CD 系统。

我的.gitlab-ci.yml文件如下:

image: node:10.15.3

cache:
  paths:
  - node_modules/

before_script:
  - node -v
  - npm install

stages:
  - test

all-tests:
  stage: test
  script:
    - npm run lint
    - npm run test:unit:cov
    - npm run test:server

Run Code Online (Sandbox Code Playgroud)

但是,该node -v6.12.0没有输出10.15.3并且我的测试失败,因为节点版本错误。

如何告诉 GitLab CI 使用 Node 10.15.3?

continuous-integration node.js gitlab gitlab-ci

5
推荐指数
1
解决办法
5330
查看次数

为什么我的CSS样式输入不会位于其标签旁边?

我正在构建一个简单的网络表单,我的一个输入字段根本不会按照原样穿在左边,而是位于前一个表单字段的右侧.我把表单简化为一个非常简单的文本案例.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>Test</title>
  <style>
    #new-thing {
      width: 450px;
    }
    #new-thing label {
      clear: left;
      float: left;
      width: 120px;
      font-weight: bold;
    }
    #new-thing input {
      width: 250px;
      margin-bottom: .5em;
    }
  </style>
</head>
<body>
<div id='new-thing'>
  <form>
    <label for='name'>Thing Name:</label>
    <input id='name'>
    <label for='first-thing'>First:</label>
    <input id='first-thing' style='width:6em;'>
    <label for='second-thing'>Second:</label>
    <input id='second-thing' style='width:6em;'>
  </form>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

第二个字段应该位于第一个字段下方,与标签"Second:"相邻,但它位于第一个字段的右侧.看到这个屏幕快照:

在此输入图像描述

我错过了什么?

css forms alignment

4
推荐指数
1
解决办法
453
查看次数

如何从websocket连接握手的头部解码cookie?(红宝石)

我正在循环中运行一个Sinatra应用程序EventMachine.run,在我的ws.onopen方法中,我希望检查handshake标头的cookie,以确保传入的请求来自我的webapp的注册用户.

我的Sinatra应用包括以下内容:

use Rack::Session::Cookie,  :key => COOKIE_KEY,
                            :path => '/',
                            :expire_after => 2592000, #30 days
                            :secret => COOKIE_SECRET
Run Code Online (Sandbox Code Playgroud)

我的ws.onopen方法看起来像这样(修剪)

ws.onopen { |handshake|
  cookie, bakesale = handshake.headers['Cookie'].split('=')
  rack_cookie = Rack::Session::Cookie.new(MyApp, {
    :key => COOKIE_KEY,
    :path => '/',
    :expire_after => 2592000, #30 days
    :secret => COOKIE_SECRET
  })
  decoded = rack_cookie.coder.decode(bakesale)
  puts "decoded: #{decoded}"

}
Run Code Online (Sandbox Code Playgroud)

cookie匹配的价值我COOKIE_KEY很好,但值decodednil

我该如何解码传入的cookie数据?

- 一段时间以后 -

我把上面的内容略微改为

ws.onopen { |handshake|
  cookie, …
Run Code Online (Sandbox Code Playgroud)

ruby cookies rack eventmachine

4
推荐指数
1
解决办法
2132
查看次数

如何本地化html5元标记信息

我正在建立一个使用4种不同语言设计的网站Sinatra,并使用和使用I18n库来插入本地化的内容,但是我想知道如何处理HTML5诸如description和的标准元标记keywords,以及Google和其他搜索引擎如何处理这些标记?我将这些标签中的内容本地化。

理想情况下,我希望能够通过sitemap.xml文件或其他信息(尽管我不确定甚至可能)告诉Google(该网站)可以用这四种语言进行解析,因此可以正确地本地化关键字和对用户的描述,具体取决于他们的区域设置偏好。

同样,我希望能够通过定位相关的og元标记和twitter:card`元标记来定位发布到Twitter和Facebook的信息。

注意:无论选择哪种语言,实际的页面URL都将相同,本地化的内容将在Slim模板本身中呈现。

例如,是否足以指定

html lang='de_DE'
Run Code Online (Sandbox Code Playgroud)

我正在寻求一种最佳实践和DRY方式,以便为我的国际用户获得很好的本地化搜索结果摘要信息。

html5 localization internationalization meta-tags

4
推荐指数
2
解决办法
2332
查看次数

使用带有Sails.js v0.10的Skipper上传文件 - 如何检索新文件名

我正在升级到Sails.js版本0.10,现在需要使用Skipper来管理我的文件上传.

当我上传文件时,我使用UUID为它生成一个新名称,并将其保存在public/files /文件夹中(当我将这一切全部工作时会改变,但现在测试很好)

我将原始名称和上传的名称+路径保存到Mongo数据库中.

这一切都非常简单,Sails v0.9.x但使用Skipper我无法弄清楚如何读取新的文件名和路径.(显然,如果我能读到我可以构建路径的名称,那么它实际上只是我需要的名称)

我的控制器看起来像这样

var uuid = require('node-uuid'),
    path = require('path'),
    blobAdapter = require('skipper-disk');

module.exports = {

  upload: function(req, res) {

    var receiver = blobAdapter().receive({
          dirname: sails.config.appPath + "/public/files/",
          saveAs: function(file) {
            var filename = file.filename,
                newName = uuid.v4() + path.extname(filename);
            return newName;
          }
        }),
        results = [];

    req.file('docs').upload(receiver, function (err, files) {
      if (err) return res.serverError(err);
      async.forEach(files, function(file, next) {
        Document.create({
          name: file.filename,
          size: file.size,
          localName: // ***** …
Run Code Online (Sandbox Code Playgroud)

javascript file-upload multifile-uploader sails.js skipper

4
推荐指数
1
解决办法
7323
查看次数

Rails 4中的区域设置回退无法正常工作

我正在为新加坡,马来西亚,台湾和中国的客户建立一个Rails 4站点.

马来西亚华语的语言环境代码是zh-MY.

我想保留一组基础zh-CN(简体中文)语言环境文件,并用于zh-MY回退zh-CN.

只是有一个zh不正确的zh-TW(繁体中文)是台湾使用的,并且它和之间有很大的不同zh-CN.

所以这是我的config/application.rb文件根据Rails指南.

require File.expand_path('../boot', __FILE__)

require 'rails/all'
require "i18n/backend/fallbacks"

module MyAwesomeApp
  class Application < Rails::Application
    I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)

    # all translations from config/locales/**/*.rb,yml are auto loaded.
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]

    # The default locale is :en
    config.i18n.default_locale = :en

    # See http://guides.rubyonrails.org/i18n.html#localized-views for a discussion of
    # how language codes fall-back.
    config.i18n.available_locales = [:en, :'zh-CN', :'zh-TW', :'en-SG', …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails rails-i18n chinese-locale

4
推荐指数
1
解决办法
700
查看次数

如何在Apple的Numbers应用程序(OS X)中引用列中最后一个填充的单元格

我需要一个表的页脚Numbers来计算列中第一个值和列中最后一个值之间的差异.最后一个值可能大于或小于第一个值.如何引用列的最后填充值?

macos apple-numbers

3
推荐指数
2
解决办法
4865
查看次数

什么是为节点6转换所需的最小的babel插件集

在我使用的Node应用程序中import,箭头函数,扩展运算符,对象解构let,和const.

在我的package.json我包括以下内容

"engines": {
  "node": ">=6.9.4",
  "npm": "^3"
},
Run Code Online (Sandbox Code Playgroud)

以及

"babel": {
  "presets": [
    "node6",
    "stage-0"
  ]
},
Run Code Online (Sandbox Code Playgroud)

"scripts": {
  "clean": "rm -rf bin/",
  "start": "node bin/index.js",
  "babel": "babel src --out-dir bin",
  "build": "npm run clean && npm run babel",
  "dev": "babel-node src/index.js",
  "test": "find ./test -name '*_spec.js' | NODE_ENV=test xargs mocha --compilers js:babel-core/register --require ./test/test_helper.js"
},
Run Code Online (Sandbox Code Playgroud)

代码工作和转换,但我注意到,看到转换后的文件,它正在转换letvar,这似乎毫无意义,因为Node 6.9.4完全支持let本机的使用.

什么是最小的babel插件集,允许我的代码在Node 6.9.4或更高版本下运行,并最大限度地使用其本机语言功能?

javascript node.js transpiler ecmascript-6 babeljs

3
推荐指数
1
解决办法
280
查看次数

在 GitLab 的 CI/CD 系统中,如何防止作业在我的分支中运行,并且仅在合并到主存储库时才允许它运行?

gitlab-ci.yml我有一份喜欢的工作

build and push:
  stage: push
  only:
  - master
  script:
  - gcloud docker -- push $IMAGE_TAG
Run Code Online (Sandbox Code Playgroud)

这个想法是,它应该只在分支是主分支时运行,但我也只希望它在回购是app/而不是主分支时运行dave/

文档

存储库路径可用于仅针对父存储库而不是分支执行作业:

job:
  only:
    - branches@gitlab-org/gitlab-ce
Run Code Online (Sandbox Code Playgroud)

但我无法让它发挥作用。如果我们的 gitlab 服务器是gitlab.myco.io并且应用程序是app/my-project-name我想我可以把

job:
  only:
    - branches@gitlab-myco-io/app/my-project-name/master
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用。

这样做的正确方法是什么?

git continuous-integration branch gitlab git-fork

3
推荐指数
1
解决办法
2319
查看次数