Grz*_*ekO 5 c# postgresql docker dockerfile docker-compose
我在C#中有一个与PostgreSQL连接的简单应用程序。我想使用此应用程序创建图像并仅在docker上运行。
我使用时一切正常:
$ docker build
$ docker run postgres
$ docker run my_app
Run Code Online (Sandbox Code Playgroud)
此外,当我在应用程序目录中使用compose时,一切正常
$ docker-compose build
$ docker-compose up
Run Code Online (Sandbox Code Playgroud)
但是是否有机会将docker-compose用于我之前构建的映像?
我想将此图像发布到我的仓库中,而我团队的其他人只需下载并运行该图像(应用程序+数据库)。
当我执行compose-build并在下次compose运行my_app时,在连接数据库期间出现异常:
dbug: Npgsql.NpgsqlConnection[3]
Opening connection to database 'POSTGRES_USER' on server 'tcp://postgres:5432'.
Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AggregateException: One or more errors occurred. (No such device or address) ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: No such device or address
Run Code Online (Sandbox Code Playgroud)
我当前的docker-compose.yml文件:
version: '2'
services:
web:
container_name: 'postgrescoreapp'
image: 'postgrescoreapp'
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/www/postgrescoreapp
ports:
- "5001:5001"
depends_on:
- "postgres"
networks:
- postgrescoreapp-network
postgres:
container_name: 'postgres'
image: postgres
environment:
POSTGRES_PASSWORD: password
networks:
- postgrescoreapp-network
networks:
postgrescoreapp-network:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
您应该使用以下名称构建映像:(registryName:RegistryPort)/imagename:version
$ docker build -t myRegistry.example.com:5000/myApp:latest .
$ docker build -t myRegistry.example.com:5000/myDb:latest .
Run Code Online (Sandbox Code Playgroud)
现在将这些行添加到 docker-compose 文件中:
Myapp:
image: myRegistry.example.com:5000/myApp:latest
MyDb:
image: myRegistry.example.com:5000/myDb:latest
Run Code Online (Sandbox Code Playgroud)
然后推它:
$ docker push myRegistry.example.com:5000/myApp:latest
$ docker push myRegistry.example.com:5000/myDb:latest
Run Code Online (Sandbox Code Playgroud)
你的伴侣现在应该可以拉它了
$ docker pull myRegistry.example.com:5000/myApp:latest
$ docker pull myRegistry.example.com:5000/myDb:latest
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3153 次 |
| 最近记录: |