我无法将 node.js 应用程序与 rabbit-mq 服务器连接。Postgres 已正确连接。我不知道为什么我的连接被拒绝。
version: "3"
networks:
app-tier:
driver: bridge
services:
db:
image: postgres
environment:
- POSTGRES_USER=dockerDBuser
- POSTGRES_PASSWORD=dockerDBpass
- POSTGRES_DB=performance
ports:
- "5433:5432"
volumes:
- ./pgdata:/var/lib/postgresql/data
networks:
- app-tier
rabbitmq:
image: rabbitmq:3.6.14-management
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:5672"]
interval: 30s
timeout: 10s
retries: 5
ports:
- "0.0.0.0:5672:5672"
- "0.0.0.0:15672:15672"
networks:
- app-tier
app:
build: .
depends_on:
- rabbitmq
- db
links:
- rabbitmq
- db
command: npm run startOrc
environment:
DATABASE_URL: postgres://dockerDBuser:dockerDBpass@db:5432/asdf
restart: on-failure
networks:
- app-tier …Run Code Online (Sandbox Code Playgroud) 我有一个 Golang 应用程序,它应该连接到 FTP 服务器。
现在,Golang app 和 FTP Server 都已dockerized,但我不知道如何从 Golang app 连接到 FTP 服务器
这是我的 docker-compose.yml
version: '2'
services:
myappgo:
image: myappgo:exp
volumes:
- ./volume:/go
networks:
myappgo_network:
env_file:
- test.env
ftpd-server:
container_name: ftpd-server
image: stilliard/pure-ftpd:hardened
ports:
- "21:21"
- "30000-30009:30000-30000"
environment:
PUBLICHOST: "localhost"
FTP_USER_NAME: "test"
FTP_USER_PASS: "test"
FTP_USER_HOME: "/home/test"
restart: on-failure
networks:
myappgo_network:
networks:
myappgo_network:
Run Code Online (Sandbox Code Playgroud)
当我运行 docker compose 时,所有服务都已启动。
我可以通过以下方式获取 ftp 容器的 IP:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ftpd-server
Run Code Online (Sandbox Code Playgroud)
然后,我在我的 golang 容器 lftp 中为 alpine 安装了一个 ftp 客户端: …
我试图连接到 mongodb 容器,但它不起作用,无法识别主机。
这是我的 docker-compose.yml 文件和服务:
version: '3'
services:
mongodb:
build:
context: .
dockerfile: docker/mongodb/Dockerfile
restart: always
environment:
DATABASE: database
USERNAME: user
PASSWORD: pass
ports:
- '5100:27017'
volumes:
- ./data/db:/data/db
Run Code Online (Sandbox Code Playgroud)
这是我的 mongodb dockerfile:
FROM mvertes/alpine-mongo:4.0.5-0
ENV MONGO_INITDB_DATABASE: ${DATABASE}
ENV MONGO_INITDB_ROOT_USERNAME: ${USERNAME}
ENV MONGO_INITDB_ROOT_PASSWORD: ${PASSWORD}
COPY ./docker/mongodb/init.js /docker-entrypoint-initdb.d
CMD ["mongod"]
EXPOSE 27017
Run Code Online (Sandbox Code Playgroud)
我正在尝试从 spring 建立连接,但找不到该服务,我的属性中有:
spring.data.mongodb.host=mongodb
spring.data.mongodb.port=5100
spring.data.mongodb.username=user
spring.data.mongodb.password=pass
spring.data.mongodb.database=database
Run Code Online (Sandbox Code Playgroud)
我也在尝试与 robo3T 建立连接,问题是一样的:
Address: mongodb://mongodb
port:5100
Run Code Online (Sandbox Code Playgroud)
春天的错误说:
com.mongodb.MongoSocketException: mongodb: unknown name or service
Run Code Online (Sandbox Code Playgroud)
在 robo3T 中说:
Cannot connect to the MongoDB …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 docker-compose 部署一个简单的节点 - redis 架构。
我有一个带有 redis 数据备份的dump.rdb,我想启动一个加载了该数据的容器。
我的 docker-compose.yml 看起来像这样:
version: '3'
services:
redis:
image: redis:alpine
container_name: "redis"
ports:
- "6379:6379"
server:
build: ./src
image: hubName:imageName
container_name: containerName
links:
- redis
depends_on:
- "redis"
ports:
- "8443:8443"
restart: always
Run Code Online (Sandbox Code Playgroud)
我应该包括卷吗?如果我想要持久化 redis 数据怎么办?
谢谢 :)
我正在使用 TypeScript 编写的 Express 服务器。项目的流程是我有一个 npm 构建脚本,它在 src 文件夹中获取项目文件并将它们编译到 dist 文件夹。这两个文件夹都位于根目录下。该项目有效,但是在尝试将所有内容移动到 docker 时,虽然我正在安装卷并且构建的文件(dist 目录)在容器中,但更改并未反映在主机上。(我正在为 Docker 使用 Windows + VirtualBox)
我已经提到了这个和这个问题。我看到他们的场景是一样的,但他们的解决方案似乎对我不起作用。我确保我使用了这些答案中提到的类似技术,它们似乎不起作用。
项目目录结构:
??? Backend
? ??? src/
? ? ??? controllers/
? ? ??? models/
? ? ??? routes/
? ? ??? services/
? ? ??? index.ts
? ? ??? server.ts
? ??? dist/ (Created upon compilation)
? ? ??? controllers/
? ? ??? data/ (Created upon starting the server)
? ? ??? models/
? ? ??? …Run Code Online (Sandbox Code Playgroud) 我对 RabbitMQ 还很陌生,我正在开发一个 POC 来运行在 docker 容器中使用 RabbitMQ 的 C# 解决方案。
我设法编写了 docker-compose.yml、dockerfile 并运行了 RabbitMQ。但是,我的解决方案无法访问 RabbitMQ 主机。我想我可能缺少一些配置,但我不知道是什么。
docker-compose.yml
version: '3.4'
services:
rabbit-sender:
image: rabbit-sender
container_name: rabbit-sender
build:
context: ../SenderRabitMQ
dockerfile: debug.Dockerfile
env_file: common.env
networks:
- rabbitPoc
expose:
- "80"
rabbit-receiver:
image: rabbit-receiver
container_name: rabbit-receiver
build:
context: ../ReceiveRabitMQ
dockerfile: debug.Dockerfile
env_file: common.env
networks:
- rabbitPoc
expose:
- "80"
rabbitmq:
image: rabbitmq:3.7.15
hostname: rabbitmq
build:
context: rabbit
dockerfile: debug.Dockerfile
ports:
- "5672:5672"
- "15672:15672"
volumes:
- "./enabled_plugins:/etc/rabbitmq/enabled_plugins"
Run Code Online (Sandbox Code Playgroud)
调试.Dockerfile
Install RabbitMQ
FROM ubuntu:14.04.1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Docker 映像在 Symfony 上运行 Mercure。
symfony/mercure 版本:“v0.2.0”,
docker-compose.yaml 配置:
mercure:
container_name: mercure
image: dunglas/mercure
environment:
- JWT_KEY=MySecret
- DEMO=1
- ALLOW_ANONYMOUS=1
- PUBLISH_ALLOWED_ORIGINS=http://my_project.com:9090/hub
- DEBUG=1
- CORS_ALLOWED_ORIGINS=*
ports:
- "9090:80"
Run Code Online (Sandbox Code Playgroud)
当我去http://my_project.com:9090/可以看到可行的 Mercure 调试工具页面。Mercure 已正确安装并与 docker 容器一起运行。
Symfony .env 文件:
MERCURE_PUBLISH_URL=http://my_project.com/hub
MERCURE_JWT_SECRET=valid_generated_JWT_token
Run Code Online (Sandbox Code Playgroud)
MERCURE_JWT_SECRET 是使用来自 Docker 配置 (MySecret) 的 JWT_KEY 生成的有效 JWT 令牌和有效负载:
{
"mercure": {
"publish": []
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这样一个简单的例子时:
public function getCountUnreadMessagesAction(Publisher $publisher)
{
// some API logic
$update = new Update(
'http://my_project.com/api/v1/messages/count-unread',
json_encode(['count' => $count])
); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 golang gin gorm 从 docker 连接 mysql 服务器。
构建本身已经成功,但是如标题所示,出现了以下错误。
panic: dial tcp 127.0.0.1:3306: connect: connection refused
Run Code Online (Sandbox Code Playgroud)
尝试以这种方式连接
func dbConnect() *gorm.DB {
db, err := gorm.Open("mysql", "docker:password@/godocker")
if err != nil {
panic(err.Error())
}
return db
}
Run Code Online (Sandbox Code Playgroud)
db:
image: mysql:5.7.26
environment:
MYSQL_USER: docker
MYSQL_ROOT_PASSWORD: password
MYSQL_PASSWORD: password
MYSQL_DATABASE: godocker
ports:
- "3306:3306"
Run Code Online (Sandbox Code Playgroud)
命中docker-compose ps命令的结果
Name Command State Ports
------------------------------------------------------------------------------------------
gin-docker_api_1 /bin/sh -c gin -i run Up 0.0.0.0:3001->3001/tcp
gin-docker_db_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp, 33060/tcp
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在使用 Whoami 进行测试并在生成证书时遇到问题。
acme.json 文件中没有生成任何证书,并且站点使用的是 Traefik 的默认证书,导航器认为该证书无效。
这是错误:
traefik | time="2019-10-14T21:16:15Z" level=error msg="Unable to obtain ACME certificate for domains \"inner-whoami.mysite.com\": unable to generate a certificate for the domains [inner-whoami.mysite.com]: acme: Error -> One or more domains had a problem:\n[inner-whoami.mysite.com] acme: error: 403 :: urn:ietf:params:acme:error:unauthorized :: Invalid response from https://inner-whoami.mysite.com/.well-known/acme-challenge/xxxxxxxxxxxxxxxxxxxx [51.75.207.100]: \"Hostname: xxxxxxxxxx\\nIP: 127.0.0.1\\nIP: 172.18.0.2\\nRemoteAddr: 172.18.0.3:55692\\nGET /.well-known/acme-challenge/xxxxxxxxxx\", url: \n" rule="Host(`inner-whoami.mysite.com`)" routerName=inner-whoami-secured providerName=myhttpchallenge.acme
traefik | time="2019-10-14T21:16:17Z" level=debug msg="legolog: [INFO] Unable to deactivate the authorization: https://acme-v02.api.letsencrypt.org/acme/authz-v3/xxxxxxxxxx"
Run Code Online (Sandbox Code Playgroud)
这是 docker-compose.yml 文件。一切都在里面。如您所见,这是一个准备进一步部署的测试。不是实际的生产文件。我需要在能够使用 Traefik 服务器范围之前解决这个问题......
version: "3.3" …Run Code Online (Sandbox Code Playgroud) 我有以下 docker-compose 文件设置以及关联的 Dockerfile。
docker-compose.yml
version: '3'
services:
vault:
springboot-app:
build:
dockerfile: ./Dockerfile
restart: always
ports:
- "8080:8080"
environment:
- "SPRING_PROFILES_ACTIVE=local"
Run Code Online (Sandbox Code Playgroud)
文件
FROM maven:3.5.2-jdk-8-alpine AS MAVEN_BUILD
COPY pom.xml /build/
COPY src /build/src/
WORKDIR /build/
RUN mvn -B -U -e clean verify
FROM openjdk:8-jre-alpine
WORKDIR /
COPY --from=MAVEN_BUILD /build/target/MyApp-0.0.1-SNAPSHOT.jar /
ENTRYPOINT ["java", "-jar", "MyApp-0.0.1-SNAPSHOT.jar"]
Run Code Online (Sandbox Code Playgroud)
当我运行 docker-compose up 时,我的应用程序现在运行良好。我想知道我需要做哪些更改才能在代码更改时重建 Spring Boot 应用程序?在我的 pom 文件中,我有 spring-boot-maven-plugin 设置如下,我已经指定了 spring-boot-devtools 依赖项
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludeDevtools>false</excludeDevtools>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助
谢谢达米安
docker ×10
docker-compose ×10
dockerfile ×2
rabbitmq ×2
spring ×2
c# ×1
ftp ×1
go-gorm ×1
https ×1
java ×1
lets-encrypt ×1
mercure ×1
mongodb ×1
mysql ×1
redis ×1
spring-boot ×1
symfony ×1
symfony4 ×1
tcp ×1
traefik ×1