小编jQw*_*rdy的帖子

使用初始模式构建postgres docker容器

我正在寻找构建代表已存在的公司数据库的dockerfiles.同样,我想创建一个通过恢复psql转储开始的docker文件.

我有我psql_dump.sql.目录.

FROM postgres
ADD . /init_data
run "createdb" "--template=template0" "my_database"
run  "psql" "-d" "my_database"  --command="create role my_admin superuser"
run  "psql" "my_database" "<" "init_data/psql_dump.sql"
Run Code Online (Sandbox Code Playgroud)

我认为这样做会很好.我想避免使用.sh脚本的解决方案.像这个解决方案.

我使用template0,因为psql文档说您需要创建原始数据库中的相同用户,并且需要在还原之前使用template0创建数据库.

但是,它给了我一个错误:

createdb: could not connect to database template1: could not connect to server: No such file or directory
        Is the server running locally and accepting
Run Code Online (Sandbox Code Playgroud)

我也在使用docker compose作为整个应用程序,如果在docker-compose中解决这个问题更好,我会很乐意使用基本的psql镜像并使用docker compose来做到这一点.

postgresql docker dockerfile docker-compose

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

通过docker连接到vpn的最佳实践

我们的一些应用程序依赖于连接到我们的VPN以连接到不同(尚未停靠的)解决方案.

这样做的"码头工作方式"是什么?在我看来,将OpenVPN添加到现有图像是违背了docker的理念.

我站在那里,我觉得创建一个docker VPN客户端容器是最有意义的.但那会是什么样子?我使用docker compose,所以肯定会有

myContainer
- links: myVPNClient
Run Code Online (Sandbox Code Playgroud)

但是我会不得不转发港口?或者通过 openVPN容器myContainer连接会发生什么.

openvpn docker docker-compose

15
推荐指数
2
解决办法
2万
查看次数

当我尝试在依赖项中使用testCompile时,会发生Gradle"构建脚本错误"

我正在使用android studio和我的应用程序的依赖项我试图添加一个testCompile依赖项,如下所示:http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html 当我同步我的文件时得到错误: 同步错误截图我不明白发生了什么,我的根文件夹中的gradle构建文件设置为classpath 'com.android.tools.build:gradle:0.12.+',这是最新版本.为什么不识别testCompile?我不想将测试依赖项部署到生产...任何帮助将不胜感激.

编辑:这是项目构建文件

buildscript {
    repositories {
        jcenter()


    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.+'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
allprojects {
    repositories {
        jcenter()
    }
}
Run Code Online (Sandbox Code Playgroud)

这是src构建文件:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 17
    buildToolsVersion "20.0.0"
    defaultConfig {
        applicationId "com.example.edu.myApp"
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' …
Run Code Online (Sandbox Code Playgroud)

gradle android-studio android-gradle-plugin

11
推荐指数
2
解决办法
1万
查看次数

测试ANTLR语法

所以我一直在使用ANTLR v3.4在Eclipse中制作语法,我已经制作了一个可行的语法,我想确保在编辑它时一切仍然有效.我每次都可以进入解释器,但这似乎是浪费时间.

问题:我已经阅读了关于gunit但是下载gUnit的链接:(http://antlr.org/hudson/job/gUnit/org.antlr $ gunit/lastSuccessfulBuild /)不起作用.我怎样才能获得gUnit.测试语法的最佳方法是什么?它实际上是gUnit还是我应该像jUnit测试一样进行java测试?

java grammar antlr3

7
推荐指数
2
解决办法
5536
查看次数

当BUNDLE_PATH使用Docker更改时,Bundler找不到已安装的gem

我正在使用docker来开发rails应用程序.docker文件如下所示:

FROM ruby:1.9.3

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev vim

ENV APP_HOME /next-reg
RUN mkdir $APP_HOME
WORKDIR $APP_HOME

ENV BUNDLE_PATH /box

ADD . $APP_HOME

RUN gem install gem1.gem  gem2.gem

COPY Gemfile Gemfile
COPY Gemfile.lock Gemfile.lock

RUN  bundle install
Run Code Online (Sandbox Code Playgroud)

正如你所看到我改变了bundle_path,这是因为有一篇文章展示了我们如何坚持下载宝石.因此,当docker缓存变热时加班,它会重新捆绑并取消FOREVER.

当我docker build成功安装宝石时,它无法在捆绑上找到它们.有人可以给我一个持久的宝石,安装我自己的宝石,让它工作?

在我改变BUNDLE_PATH构建工作之前,它只是经常捆绑而不更改gem文件(因为,我想Docker图像缓存变热了).

我的docker-compose是这样的:

db:
  image: postgres
  volumes:
    - ~/.docker-voumes/postgres/data:/var/lib/postgresql/data
# This is to hold and persist ruby gems, referenced in web and in web's dockerfile.
gem_files:
  image: busybox …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails docker dockerfile docker-compose

7
推荐指数
1
解决办法
2904
查看次数

测试权限和Android应用清单文件

我想知道是否有办法向 Android清单文件添加某些权限(或任何内容),但是它只在测试运行期间使用 - 而不是生产.我正在寻找一些程序化的东西,而不是在我测试时切割和粘贴.

这是上下文:

我正在阅读这篇文章:http://developer.android.com/training/location/location-testing.html,测试运行应用程序的最佳做法曾经是创建'测试应用程序',但是对于android studio我们现在不打算创建一个新的应用程序 - 所有测试都应该通过应用程序完成.(谢谢你的学习)

问题是这篇文章是用一个测试权限(ACCESS_MOCK_LOCATION)编写的,我不希望它坐在我的应用程序中 - 如果有一个很好的方法,我想这样做.

更新:我遇到这个问题的原因是因为自从迁移到Gradle后对android studio架构的设置存在误解.我没有意识到构建类型共享'androidTest'和'main'源文件夹.因此,在测试或运行未完成的应用程序时,它会获取调试文件(如果有的话)并将所有生产内容添加到其中.所以在我的情况下,我在调试中添加了一个空的清单文件,只是添加了两个权限.当我运行或测试时,gradle将我的所有应用程序的东西从其他清单添加到它这个骨架文件(反之亦然,我不确定).

所以最后我们不需要修改androidTest文件夹(事实上我认为我们不允许在这里添加清单),因为它是根据用户是在调试还是部署上运行而完全生成的.干杯! :-)

android android-gradle-plugin

5
推荐指数
2
解决办法
6380
查看次数

有没有办法用googleMaps(android)进行功能测试?

我目前正在使用Espresso对我的Android应用程序进行功能测试,它非常棒.问题是我希望能够在地图上测试特定的操作.由于整个应用程序都以与地图的交互为中心,有没有办法实际执行此操作?

事情会很棒:

  1. 点击某个latLng的地图
  2. 获取特定的缩放级别等.
  3. 我可以用地图做的任何其他事情.

我原本以为我可以调用onView(withId(R.id.map)))来获取地图的实例,但这会返回一个我不相信的视图交互.我愿意使用其他框架,但如果它可以在浓咖啡中完成,那就太好了.

android functional-testing google-maps-android-api-2 android-espresso

5
推荐指数
0
解决办法
347
查看次数

Node.js - 使用每秒 5 个请求的 API 限制

我有一个“脚本”,可以向特定 API 发出数千个请求。这个 API 每秒只允许 5 个请求(可能它的测量方式与我不同)。为了提出我正在使用的request-promise框架的请求,我已经request-promise用这个取代了正常的功能:

const request_promise  = require('request-promise')

function waitRetryPromise() {
  var count = 0 // keeps count of requests
  function rp(options) {
    const timedCall = (resolve) => setTimeout( ()=>resolve(rp(options)),1000) // recursive call
    count += 1
    if (count % 3 == 0) { // recalls after a second on every third request
      return new Promise(timedCall)
    } else {
      return request_promise(options)
    }
  }
  return rp
}

const rp = waitRetryPromise()
Run Code Online (Sandbox Code Playgroud)

一旦连续发出大约 300 个请求(给予或接受),这些请求就会开始相互干扰。有没有人有更好的解决方案?我认为对同一个函数的递归调用会有所帮助,它确实做到了,但并没有解决问题。也许有一种模式可以将请求排队,并且一次做几个?也许是图书馆?

谢谢!

javascript node.js promise request-promise

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

'+'附近的语法不正确 - SQL/TSQL

尝试这样做(在SQL Server Management Studio中)

DECLARE @fun as int
SET @fun = 40
PRINT 'String' + 'Hello!'

EXEC msdb.dbo.sp_senddbmail
    @profile_name = 'Some working profile',
    @recipients = 'someone@example.ca',
    @subject =  'String' + 'Hello!',
    @body = 'Test email sendout'
Run Code Online (Sandbox Code Playgroud)

得到此错误:

消息102,级别15,状态1,行8
'+'附近的语法不正确.

注意第一个连接工作,第二个连接不工作.

我采取的步骤:

重新输入全部(因此它不是复制粘贴错误).尝试将其更改为('String'+'Hello!')并获得错误Incorrect syntax near '('.所以我感觉有点迷失.

编辑2:我已经改变了这个例子,因为当它的两个字符串没有涉及演员表时会发生同样的错误

sql t-sql sql-server ssms

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

Typescript 编译器或 ES2015 - 是否优化代码?

在其他语言的编译器领域,当它被编译为从循环中被拉出时,这样的东西会被优化,所以每次都不会创建一个新对象:

const arr = [1, 2, 3, 4, 5]

arr.map(num => {

    const one_time = 5; // this never changes, can be lifted out of the loop.

    return num * one_time;
 })
Run Code Online (Sandbox Code Playgroud)

我试图查看打字稿编译器是否更改了上面的代码,但似乎没有 - 也许其他东西可以解决它?或者,对象创建可能会分配该变量并且永远不会更改它。

我不指望 ES2015 这样做,因为它被解释了,但我很高兴错了。

如果有人能告诉我将来如何最好地为自己解决这个问题,那就加分。

谢谢你们!

optimization typescript ecmascript-6

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