我正在寻找构建代表已存在的公司数据库的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来做到这一点.
我们的一些应用程序依赖于连接到我们的VPN以连接到不同(尚未停靠的)解决方案.
这样做的"码头工作方式"是什么?在我看来,将OpenVPN添加到现有图像是违背了docker的理念.
我站在那里,我觉得创建一个docker VPN客户端容器是最有意义的.但那会是什么样子?我使用docker compose,所以肯定会有
myContainer
- links: myVPNClient
Run Code Online (Sandbox Code Playgroud)
但是我会不得不转发港口?或者通过 openVPN容器myContainer连接会发生什么.
我正在使用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) 所以我一直在使用ANTLR v3.4在Eclipse中制作语法,我已经制作了一个可行的语法,我想确保在编辑它时一切仍然有效.我每次都可以进入解释器,但这似乎是浪费时间.
问题:我已经阅读了关于gunit但是下载gUnit的链接:(http://antlr.org/hudson/job/gUnit/org.antlr $ gunit/lastSuccessfulBuild /)不起作用.我怎样才能获得gUnit.测试语法的最佳方法是什么?它实际上是gUnit还是我应该像jUnit测试一样进行java测试?
我正在使用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) 我想知道是否有办法向 Android清单文件添加某些权限(或任何内容),但是它只在测试运行期间使用 - 而不是生产.我正在寻找一些程序化的东西,而不是在我测试时切割和粘贴.
我正在阅读这篇文章:http://developer.android.com/training/location/location-testing.html,测试运行应用程序的最佳做法曾经是创建'测试应用程序',但是对于android studio我们现在不打算创建一个新的应用程序 - 所有测试都应该通过应用程序完成.(谢谢你的学习)
问题是这篇文章是用一个测试权限(ACCESS_MOCK_LOCATION)编写的,我不希望它坐在我的应用程序中 - 如果有一个很好的方法,我想这样做.
更新:我遇到这个问题的原因是因为自从迁移到Gradle后对android studio架构的设置存在误解.我没有意识到构建类型共享'androidTest'和'main'源文件夹.因此,在测试或运行未完成的应用程序时,它会获取调试文件(如果有的话)并将所有生产内容添加到其中.所以在我的情况下,我在调试中添加了一个空的清单文件,只是添加了两个权限.当我运行或测试时,gradle将我的所有应用程序的东西从其他清单添加到它这个骨架文件(反之亦然,我不确定).
所以最后我们不需要修改androidTest文件夹(事实上我认为我们不允许在这里添加清单),因为它是根据用户是在调试还是部署上运行而完全生成的.干杯! :-)
我目前正在使用Espresso对我的Android应用程序进行功能测试,它非常棒.问题是我希望能够在地图上测试特定的操作.由于整个应用程序都以与地图的交互为中心,有没有办法实际执行此操作?
事情会很棒:
我原本以为我可以调用onView(withId(R.id.map)))来获取地图的实例,但这会返回一个我不相信的视图交互.我愿意使用其他框架,但如果它可以在浓咖啡中完成,那就太好了.
android functional-testing google-maps-android-api-2 android-espresso
我有一个“脚本”,可以向特定 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 个请求(给予或接受),这些请求就会开始相互干扰。有没有人有更好的解决方案?我认为对同一个函数的递归调用会有所帮助,它确实做到了,但并没有解决问题。也许有一种模式可以将请求排队,并且一次做几个?也许是图书馆?
谢谢!
尝试这样做(在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:我已经改变了这个例子,因为当它的两个字符串没有涉及演员表时会发生同样的错误
在其他语言的编译器领域,当它被编译为从循环中被拉出时,这样的东西会被优化,所以每次都不会创建一个新对象:
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 这样做,因为它被解释了,但我很高兴错了。
如果有人能告诉我将来如何最好地为自己解决这个问题,那就加分。
谢谢你们!
docker ×3
android ×2
dockerfile ×2
antlr3 ×1
ecmascript-6 ×1
gradle ×1
grammar ×1
java ×1
javascript ×1
node.js ×1
openvpn ×1
optimization ×1
postgresql ×1
promise ×1
sql ×1
sql-server ×1
ssms ×1
t-sql ×1
typescript ×1