You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker容器内RStudio连接PostgreSQL失败:主机名无法解析

问题:Docker容器内RStudio无法解析PostgreSQL主机名

问题详情

在Docker容器中运行RStudio实例时,连接公司私有PostgreSQL数据库遇到如下错误:

Error: could not translate host name "ABC-123" to address: Name or service not known

本地机器上可通过以下R代码正常连接:

# Load Libraries
# renv::init()
library(tidyverse)
library(glue)
library(dbplyr)
library(odbc)
library(DBI)
library(RPostgreSQL)
library(sendmailR)
library(paws)
library(config)
library(fs)
# renv::snapshot()

con <- dbConnect(RPostgres::Postgres(), 
                 dbname   = EDP_db, 
                 host     = EDP_host_db, 
                 port     = EDP_db_port, 
                 user     = EDP_db_user, 
                 password = EDP_db_password)

Docker配置文件及运行命令

Dockerfile

FROM rocker/tidyverse:latest

# environment variables
ENV RENV_CONFIG_REPOS_OVERRIDE https://packagemanager.rstudio.com/cran/latest

# Install dependency libraries
RUN apt-get update -qq && apt-get install -y --no-install-recommends \
  build-essential \
  libxml2-dev \
  libcurl4-openssl-dev \
  libicu-dev \
  libsodium-dev \
  libssl-dev \
  libmagick++-dev \
  libudunits2-dev \
  libgdal-dev \
  libgeos-dev \
  libproj-dev \
  lbzip2 \
  libpq-dev \
  make \
  && apt-get clean
  
# expose port on Docker container (Ports that docker opens up) & set working directory
EXPOSE 8787
EXPOSE 5610 # (Port of DB)
EXPOSE 1440
RUN mkdir -p /app
RUN chmod -R 755 /app 
WORKDIR /app/
 
# install R-packages into Docker container
COPY renv.lock renv.lock 
RUN Rscript -e "install.packages('renv', repos = 'http://cran.us.r-project.org')"
RUN Rscript -e "renv::restore()"

# copy necessary files and data into app folder
COPY daily_leads.R /app/daily_leads.R
COPY config.yml /app/config.yml
COPY qk526-rpms-rp-daily-leads.Rproj /app/qk526-rpms-rp-daily-leads-app.Rproj

构建与运行命令

docker build -t daily_leads_app:1.0 --build-arg HTTP_PROXY="http://LCPzen.fpl.com:10262" --build-arg HTTPS_PROXY="http://LCPzen.fpl.com:10262" .

docker run --rm -d -p 8787:8787 daily_leads_app:1.0

额外信息

  • 项目使用公司代理,不清楚Docker主机的网络配置类型及配置方法
  • 目标数据库为公司私有库,无法本地部署,因此无法采用Docker Compose启动PostgreSQL并绑定服务名的常规解决方案

内容的提问来源于stack exchange,提问作者Eazie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:43:13