使用以下步骤使用Edeliver&Distillery将我们的应用程序成功部署到虚拟机后:https: //github.com/dwyl/learn-phoenix-framework/blob/master/production-deployment.md
该应用程序运行:http://52.232.127.28/
但是当我们试图访问"帖子"路线时:http://52.232.127.28/posts
我们看到internal server error
:
作为一个凤凰诺布,我不知道如何调试Prod中的日志......
我们如何在虚拟机上看到这些日志?日志在哪里,我们可以tail
记录日志吗?
我正在制作的应用程序是用ES6编写的,其他好东西是由Docker容器中的webpack编译的.目前,一切都可以从创建内部目录,安装依赖项和创建编译的bundle文件开始.
相反,当运行容器时,它表示dist/bundle.js不存在.除非我在主机目录中创建捆绑文件,否则它将起作用.
我已经尝试为dist目录创建一个卷,它第一次工作,但在进行更改和重建之后它不会获取新的更改.
我想要实现的是让容器构建并运行已编译的bundle.我不确定webpack部分是作为构建步骤在Dockerfile中还是在运行时,因为CMD ["yarn", "start"]
崩溃但是RUN ["yarn", "start"]
有效.
任何建议和帮助表示赞赏.提前致谢.
|_src
|_index.js
|_dist
|_bundle.js
|_Dockerfile
|_.dockerignore
|_docker-compose.yml
|_webpack.config.js
|_package.json
|_yarn.lock
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml
version: "3.3"
services:
server:
build: .
image: selina-server
volumes:
- ./:/usr/app/selina-server
- /usr/app/selina-server/node_modules
# - /usr/app/selina-server/dist
ports:
- 3000:3000
Run Code Online (Sandbox Code Playgroud)
Dockerfile
FROM node:latest
LABEL version="1.0"
LABEL description="This is the Selina server Docker image."
LABEL maintainer="AJ alvaroo@selina.com"
WORKDIR "/tmp"
COPY ["package.json", "yarn.lock*", "./"]
RUN ["yarn"]
WORKDIR "/usr/app/selina-server"
RUN ["ln", "-s", "/tmp/node_modules"]
COPY [".", "./"]
RUN ["yarn", "run", "build"] …
Run Code Online (Sandbox Code Playgroud) 在部署场景中,我需要在主机列表上创建和运行jenkins任务,即创建类似参数化任务(其中ip地址是参数)或具有HOST轴的Multijob插件上的任务,但在多个并行运行仅2个1主机.
其中一个选项可能是使用主机列表运行ansible,但我希望分别查看每个主机的状态,并在需要时重新启动jenkins作业.
主要选项是使用Job DSL Plugin或Pipeline Plugin,但在这里我需要帮助来理解应该使用dsl groovy代码的类/方法来实现这一点.
任何人都可以帮忙吗?
continuous-deployment jenkins jenkins-job-dsl devops jenkins-pipeline
我是一个非常新的 BASH 脚本,我正在尝试创建自己的脚本以从源下载/构建一个包。但是,我想在我的脚本中添加一些交互,以使其将来为更新版本做好准备。
我的脚本询问用户他们想要安装的版本并生成 wget 命令和下载链接。请参阅下面的摘录:
# Ask user for required version
read packversion
# Download version from internet (depending on version provided above)
wget https://example.com/download/1.10/src/$packversion.tar.gz -O package.tar.gz
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是如果您查看它包含1.10的网址,我只想从提供的字符串中提取主要/次要版本并预先填充它。
有没有我可以使用的功能来实现这一点?
提前致谢。
如果在CodeBuild项目中使用Github存储库作为源,则该Branch Filter
选项允许仅为分支运行构建,分支的名称与特定正则表达式匹配.
在AWS管理控制台中,您可以在创建或编辑CodeBuild项目时配置分支过滤器:
对于awscli存在一个选项--update-webhook
(在此记录)
$ aws codebuild update-webhook --project-name myproject --branch-filter ^master$
Run Code Online (Sandbox Code Playgroud)
在CodeBuild中,cloudformation模板存在一个选项Triggers > Webhook
(此处记录),但此选项只是一个简单启用/禁用github webhook的布尔值.
Resources:
MyCodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Name: myproject
...
Triggers:
Webhook: true
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何直接在云信息模板中定义分支过滤器,而无需执行awscli命令或使用AWS管理控制台?
continuous-integration amazon-web-services aws-cloudformation devops aws-codebuild
我有要在AWS中使用Terraform部署的基础架构。该基础架构可以部署到我正在使用工作空间的不同环境中。
应该为每个工作区分别创建部署中的大多数组件,但是我希望在它们之间共享几个关键组件,主要是:
例如:
resource "aws_iam_role" "lambda_iam_role" {
name = "LambdaGeneralRole"
policy = <...>
}
resource "aws_lambda_function" "my_lambda" {
function_name = "lambda-${terraform.workspace}"
role = "${aws_iam_role.lambda_iam_role.arn}"
}
Run Code Online (Sandbox Code Playgroud)
第一个资源是IAM角色,应在该Lambda的所有实例之间共享,并且不应重复创建一次。
第二个资源是Lambda函数,其名称取决于当前工作空间,因此每个工作空间都将部署并跟踪不同Lambda的状态。
如何在不同的Terraform工作空间之间共享资源及其状态?
我们有一个包含多个存储库的 Azure DevOps 项目。然而,我们只想向另一个团队提供对几个存储库的访问权限。
我已经设置了一个名为的组Outsource
(奇怪的是它没有显示在“项目设置”>“常规”>“团队”下),并且在“项目设置”>“存储库”>“存储库”部分中我已授予该组权限。
但是,他们无法从“我的组织”>“存储库”(红色图标)访问这些存储库。他们也无法克隆存储库。
“外包”组中的一个用户被设置为基本用户。
谁能告诉我是否缺少设置?提供针对回购的许可似乎没有任何作用?我还给了他们访问另一个项目的权限,他们可以访问该项目。
googleapi:错误403:资源项目shared_vpc_host_name的权限被拒绝。,禁止
我正在尝试使用 Terraform 项目 facotry 模块创建共享 vpc 和服务项目,但我遇到了错误,不确定它是否真的与权限相关。这是我收到的错误
Error: googleapi: Error 403: Permission denied on resource project shared_vpc_host_name., forbidden
on .terraform/modules/project_factory/terraform-google-project-factory-8.1.0/modules/core_project_factory/main.tf line 136, in resource "google_compute_shared_vpc_service_project" "shared_vpc_attachment":
136: resource "google_compute_shared_vpc_service_project" "shared_vpc_attachment" {
Error: Error retrieving IAM policy for compute subnetwork "projects/shared_vpc_host_name/regions/us-central1/subnetworks/10.128.0.0": googleapi: Error 403: Permission denied on resource project shared_vpc_host_name., forbidden
Run Code Online (Sandbox Code Playgroud) google-api google-cloud-platform terraform devops terraform-provider-gcp
我刚刚用Ansible 2.2和Debops弄湿了,我遇到了以下问题.我有一个主机test-host
,我部署了一个MySQL服务器(使用geerlingguy.mysql).
该角色使用以下处理程序重新启动服务:
---
- name: restart mysql
service: "name={{ mysql_daemon }} state=restarted sleep=5"
Run Code Online (Sandbox Code Playgroud)
我认为,它使用Ansibles 服务模块来重启服务器.但是,失败了:
unsupported parameter for module: sleep
Run Code Online (Sandbox Code Playgroud)
所以只是为了排除那个自定义角色的任何怪异,我试图像这样直接执行模块:
ansible test-host -b -m service -a 'name=mysql sleep=5 state=restarted'
Run Code Online (Sandbox Code Playgroud)
结果相同.
使用更详细的输出显示运行Ansible(除其他外):
Running systemd
Using module file /usr/local/lib/python2.7/site-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/system/systemd.py
Run Code Online (Sandbox Code Playgroud)
因此,似乎使用该systemd
模块而不是service
(查看模块显示它确实是别名service
).并且,瞧,systemd
不支持sleep
参数.
如何解决这个问题?
我目前正在研究 Jenkins 与 Slack 之间的集成,我想从 slack 中完全控制 Jenkins,基本上,我想触发作业,并且我想回答输入(如果存在)。例如
pipeline{
agent any
stages{
stage('Test Notification success stage'){
steps{
script{
env.createofflinepkg = input message: 'User input required',
ok: 'Submit',
parameters: [choice(name: 'Create Offline Package', choices: "Create\nSkip", description: 'Create Offline Package or Skip')]
}
slackSend (channel: 'input-response',color: '#ffff00', message: "Yellow at general : Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望将其发送到 slack,然后我可以从 slack 中回答这个问题,有没有办法做到这一点?提前致谢。